Twitter上的Android分享

问题描述 投票:12回答:4

如何在Twitter上分享字符串消息?我想让用户在多个字符串消息之间进行选择,然后单击一个以通过Twitter分享。

android twitter
4个回答
16
投票

有很多方法可以实现这一点。可能只需打开http://twitter.com并在单一意图中共享推文,例如..

Intent tweet = new Intent(Intent.ACTION_VIEW);
tweet.setData(Uri.parse("http://twitter.com/?status=" + Uri.encode(message)));//where message is your string message
startActivity(tweet);

要么,

Intent tweet = new Intent(Intent.ACTION_SEND);
tweet.putExtra(Intent.EXTRA_TEXT, "Sample test for Twitter.");
startActivity(Intent.createChooser(share, "Share this via"));

要么,

String tweetUrl = "https://twitter.com/intent/tweet?text=WRITE YOUR MESSAGE HERE &url="
                    + "https://www.google.com";
Uri uri = Uri.parse(tweetUrl);
startActivity(new Intent(Intent.ACTION_VIEW, uri));

4
投票

要通过twitter分享我在Util类中使用我自己的自定义静态函数,如下所示:

public class Util
{
    public static Intent getTwitterIntent(Context ctx, String shareText)
    {
        Intent shareIntent;

        if(doesPackageExist(ctx, "com.twitter.android"))
        {           
            shareIntent = new Intent(Intent.ACTION_SEND);
            shareIntent.setClassName("com.twitter.android",
                "com.twitter.android.PostActivity"); 
            shareIntent.setType("text/*");
            shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareText); 
            return shareIntent;
       }
       else
       {
           String tweetUrl = "https://twitter.com/intent/tweet?text=" + shareText;
           Uri uri = Uri.parse(tweetUrl);
           shareIntent = new Intent(Intent.ACTION_VIEW, uri);
           return shareIntent;
       }
   }
}

这个功能的优点是,如果安装了twitter应用程序,它会使用它,否则,它会使用基于Web的推特页面。将被推文的文本传递给该函数。

在您的方案中,当用户从选择的消息中进行选择时,将所选消息传递给该功能。然后它将返回一个Intent,您可以将其插入startActivity()函数,如下所示:

startActivity(Util.getTwitterIntent(context, "Text that will be tweeted"));

1
投票

你可以使用库qazxsw poi。下载并添加到java构建路径。代码示例:

  • 添加新推文: Twitter4J Twitter twitter = TwitterFactory.getSingleton();
  • 使用OAuth登录(Java代码,编辑它): Status status = twitter.updateStatus(latestStatus); } Twitter twitter = TwitterFactory.getSingleton(); twitter.setOAuthConsumer("[consumer key]", "[consumer secret]"); RequestToken requestToken = twitter.getOAuthRequestToken(); AccessToken accessToken = null; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); while (null == accessToken) { System.out.println("Open the following URL and grant access to your account:"); System.out.println(requestToken.getAuthorizationURL()); System.out.print("Enter the PIN(if aviailable) or just hit enter.[PIN]:"); String pin = br.readLine(); try{ if(pin.length() > 0){ accessToken = twitter.getOAuthAccessToken(requestToken, pin); }else{ accessToken = twitter.getOAuthAccessToken(); } } catch (TwitterException te) { if(401 == te.getStatusCode()){ System.out.println("Unable to get the access token."); }else{ te.printStackTrace(); } } } //persist to the accessToken for future reference. storeAccessToken(twitter.verifyCredentials().getId() , accessToken); Status status = twitter.updateStatus(args[0]); System.out.println("Successfully updated the status to [" + status.getText() + "]."); System.exit(0); private static void storeAccessToken(int useId, AccessToken accessToken){ //store accessToken.getToken() //store accessToken.getTokenSecret() 得到推文: }
  • 获得时间表: Twitter twitter = TwitterFactory.getSingleton(); Query query = new Query("source:twitter4j yusukey"); QueryResult result = twitter.search(query); for (Status status : result.getStatuses()) { System.out.println("@" + status.getUser().getScreenName() + ":" + status.getText()); }

我希望我帮助过


1
投票

如果您需要成功回复和推文ID,您可以使用Twitter SDK状态服务,以便通过Twitter发布推文。你可以用这个发帖子。

   Twitter twitter = TwitterFactory.getSingleton();
   List<Status> statuses = twitter.getHomeTimeline();
  System.out.println("Showing home timeline.");
   for (Status status : statuses) {
      System.out.println(status.getUser().getName() + ":" +
                       status.getText());
}

你也可以上传带有描述的图片,但在此之前,你必须使用Twitter媒体服务创建图像的媒体ID,并将此媒体ID传递给状态服务。

© www.soinside.com 2019 - 2024. All rights reserved.