Опубликовать твит с Android API - PullRequest
5 голосов
/ 17 марта 2011

Я искал способ опубликовать твит с моим Android-приложением, но все, что я нашел, не работает.

Я должен признать, что API Twitter не такпрост для понимания, но мой код не очень длинный, и я не вижу, где моя ошибка.

Это мой код:

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();

            }
        }
    }
}

Конечно, мои ключиХХХИ еще один вопрос, возможно ли после входа в систему закрыть окно Twitter и вывести мою активность на первый план?

Ответы [ 2 ]

5 голосов
/ 18 марта 2011

Пожалуйста, проверьте в следующем сообщении в блоге для получения полного руководства по публикации сообщений в Twitter из приложения Android.

В также включен рабочий образец AndroidGithub .

0 голосов
/ 11 января 2013

Создайте свое приложение с разрешением на чтение / запись на сайте разработчика Twitter, сгенерируйте токен доступа для своего приложения.

используйте следующий код для обновления статуса

public static void main(String[] args) {

    String CONSUMER_KEY = "YOUR_CONSUMER_KEY";
    String CONSUMER_SECRET = "YOUR_CONSUMER_SECRET";
    String ACCESS_SECRET = "YOUR_ACCESS_SECRET";
    String ACCESS_TOKEN = "YOUR_ACCESS_TOKEN";

    // Consumer
    Twitter twitter = new TwitterFactory().getInstance();
    twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);

    // Access Token
    AccessToken accessToken = null;
    accessToken = new AccessToken(ACCESS_TOKEN, ACCESS_SECRET);
    twitter.setOAuthAccessToken(accessToken);

    // Posting Status
    Status status = null;
    try {
        status = twitter.updateStatus("YOUR_STATUS");
    } catch (TwitterException e) {
        e.printStackTrace();
    }
    System.out.println("Successfully updated the status: "
            + status.getText());
}
...