ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

使用Android API发布推文

2019-05-21 21:52:49  阅读:178  来源: 互联网

标签:java android twitter twitter4j


我一直在寻找一种方法来发布我的Android应用程序的推文,但我找到的所有东西都不起作用.

我不得不承认Twitter的API不是那么容易理解,但是我的代码并不长,而且我不知道我的错误在哪里.

这是我的代码:

public class PartagerTwitter extends Activity {

    private CommonsHttpOAuthConsumer httpOauthConsumer;
    private OAuthProvider httpOauthprovider;
    public final static String consumerKey = XXX;
    public final static String consumerSecret = XXX;
    private final String CALLBACKURL = "myapp://twitactivity";
    private Twitter twitter;

    @Override

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        try {
            httpOauthConsumer = new CommonsHttpOAuthConsumer(consumerKey, consumerSecret);
            httpOauthprovider = new DefaultOAuthProvider("https://twitter.com/oauth/request_token",
                    "https://twitter.com/oauth/access_token",
            "https://twitter.com/oauth/authorize");
            String authUrl = httpOauthprovider.retrieveRequestToken(httpOauthConsumer, CALLBACKURL);

            this.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl)));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Override
    protected void onNewIntent(Intent intent) {

        super.onNewIntent(intent);  
        Uri uri = intent.getData();
        Log.i("test", uri.toString());  
        if (uri != null && uri.toString().startsWith(CALLBACKURL)) {
            String verifier = uri.getQueryParameter(oauth.signpost.OAuth.OAUTH_VERIFIER);
            try {
                httpOauthprovider.retrieveAccessToken(httpOauthConsumer, verifier);     
                twitter = new TwitterFactory().getInstance();
                twitter.setOAuthConsumer(consumerKey, consumerSecret);

                RequestToken requestToken = twitter.getOAuthRequestToken(CALLBACKURL); 
                AccessToken accessToken = twitter.getOAuthAccessToken(requestToken);
                String token = accessToken.getToken(), 
                secret = accessToken.getTokenSecret();

                accessToken = new AccessToken(token,secret);
                Twitter twitter = new TwitterFactory().getOAuthAuthorizedInstance(consumerKey,consumerSecret,accessToken);
                twitter.updateStatus("My First Status Update");
            } catch (Exception e) {
                e.printStackTrace();

            }
        }
    }
}

当然,我的钥匙不是XXX.
还有一个问题,是否有可能在登录后关闭Twitter窗口并将我的活动带到前台?

解决方法:

请查看the following blog post以获取从Android应用发布到Twitter的完整端到端指南.

它还包括Github的Android样本.

标签:java,android,twitter,twitter4j
来源: https://codeday.me/bug/20190521/1148943.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有