【问题标题】:How to share link via twitter in android?如何在 android 中通过 twitter 分享链接?
【发布时间】:2014-10-28 21:54:12
【问题描述】:

在我的应用程序中,我需要通过 Facebook 和 twitter 分享促销网站的链接,在 facebook 中我们得到类似 "share dialog" 或发布捆绑包之类的内容

Request request = new Request(Session.getActiveSession(), "me/feed", bundle, HttpMethod.POST, 
       new Request.Callback(){
                @Override
                public void onCompleted(Response response) {
                    ...
                }
            });

但没有适用于 android 的 twitter sdk(我确实使用 twitter4j)并且无法发布捆绑包

那么如何通过 twitter 发布链接?

【问题讨论】:

    标签: android twitter


    【解决方案1】:

    如果您发送带有“这是我们的链接:http://stackoverflow.com”之类的链接的文本 - twitter 会理解它并从您的链接中获取信息并显示它 - 据我所知,您需要在 twitter 提要中查看您识别的链接。 要发布链接,您可以像 @Adrian Sicaru 一样做出意图,或者使用带有 twitter4j 的 asynctask 创建您自己的自定义对话框,正如您所提到的:

    @Override
    protected Bundle doInBackground(Bundle... params) {
        Bundle args = params[0];
        Bundle result = new Bundle();
    
        String paramMessage = args.getString(MESSAGE);
        String paramLink = args.getString(LINK);
    
        ConfigurationBuilder builder = new ConfigurationBuilder();
        builder.setOAuthConsumerKey("your ConsumerKey");
        builder.setOAuthConsumerSecret("your ConsumerSecret");
    
        String accessToken = "your Token";
        String accessTokenSecret = "your Secret";
    
        TwitterFactory factory = new TwitterFactory(builder.build());
        mTwitter = factory.getInstance(new AccessToken(accessToken, accessTokenSecret));
        try {
            StatusUpdate status = new StatusUpdate(paramMessage);
    
            if (paramLink != null) {
                status = new StatusUpdate(paramMessage + " " + paramLink);
            }
            mTwitter.updateStatus(status);
        } catch (TwitterException e) {
            result.putString(RESULT_ERROR, e.getMessage());
        }
        return result;
    }
    

    【讨论】:

      【解决方案2】:

      你可以通过这样的意图来做到这一点:

      Intent sendIntent = new Intent();
      sendIntent.setAction(Intent.ACTION_SEND);
      sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
      sendIntent.setType("text/plain");
      startActivity(sendIntent);
      

      这将打开一个列表,其中包含已安装的可以响应意图的应用,例如 gmail、facebook 和... twitter。

      您可以在这里找到更多信息:http://developer.android.com/training/sharing/send.html

      另外,如果你想直接调用twitter又不想选择,可以看看this answer

      【讨论】:

        【解决方案3】:

        就像@TribblerWare 回答的一样,只需在推文中写链接,推特就认出了它。

        顺便说一句,您可以使用ASNE library - 只需授权用户并使用 requestPostLink 和 bundle 作为参数

        Bundle postParams = new Bundle(); 
        postParams.putString(SocialNetwork.BUNDLE_LINK, link); 
        socialNetwork.requestPostLink(postParams, message, postingComplete);
        

        更详细的可以看tutorial

        【讨论】:

          猜你喜欢
          • 2013-10-06
          • 2014-01-14
          • 1970-01-01
          • 2013-02-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-15
          相关资源
          最近更新 更多