5

こんにちは、JTwitter 機能を使用して Twitter アプリケーションで認証するのに問題があります。私はいつも「TwitterException」を受け取ります

これが私の方法です

OAuthSignpostClient oauthClient = new OAuthSignpostClient(consumerKey, 
            privateKey, "oob");

a)「oob」の値がどうあるべきかわかりません。それは「callbackURL」であり、Twitterのアプリケーションでは、、、、および 場所を"callBack URL: none" 入れてみましたが"none"、結果に違いはありませんでした。"None"null"oob"

残りはボイラープレートです

 Intent i = new Intent(Intent.ACTION_VIEW, 
    Uri.parse(oauthClient.authorizeUrl().toString()));
    startActivity(i);
    // get the pin
    String v = oauthClient.askUser("Please enter the verification PIN from Twitter");
    oauthClient.setAuthorizationCode(v);
    // Store the authorisation token details for future use
    String[] accessToken = oauthClient.getAccessToken();
    // Next time we can use new OAuthSignpostClient(OAUTH_KEY, OAUTH_SECRET, 
    //        accessToken[0], accessToken[1]) to avoid authenticating again.

    EditText twitterText = (EditText)findViewById(R.id.twitterText);
    twitterText.getText();

    // Make a Twitter object
    Twitter twitter = new Twitter(null, oauthClient);
    // Print Daniel Winterstein's status
    //System.out.println(twitter.getStatus("winterstein"));
    // Set my status
    twitter.setStatus(twitterText.getText());

現時点では、これを機能させる方法がわかりません。もっと詳しく説明できればいいのですが、それは認証と関係があります。オンラインで見たものは役に立たなかった

4

3 に答える 3

7

これをコールバック URL として試してください:

OAuthSignpostClient oauthClient = 
    new OAuthSignpostClient(consumerKey, privateKey, "callback://twitter");  

覚えて!後:

    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl)));

以下をせよ

オーバーライド onResume()して確認コードを取得する

protected void onResume() {
    super.onResume();
    if (this.getIntent()!=null && this.getIntent().getData()!=null){
        Uri uri = this.getIntent().getData();
        if (uri != null && uri.toString().startsWith("callback://twitter")) {
            //Do whatever you want
            //usually use uri.getQueryParameter(someString);
            //test what could be someString using Log.v("",uri.toString());
            //you want the Authorization code which is a couple of numbers
            //so you could use oauthClient.setAuthorizationCode(v); 
            //and finally initialise Twitter
        }
    }
}

uri.getQueryParameterNames()パラメータString名を取得するために使用できます。


@ボブボーク

Twitter アプリ (twitter.com) の [設定] タブでコールバック URL を設定する必要があることを付け加えておきます。

フィールドに何を入力してもかまいませんが、空の場合はコールバック URL が機能しません。

于 2011-08-09T07:43:21.050 に答える
1

それが問題かどうかはわかりませんが、Twitterオブジェクトのユーザー名を設定したことがないようです。

于 2011-08-05T20:57:44.630 に答える
1

ええと、Jtwitter API がどうなっているのかわかりませんし、この時点でこのコードの内部動作を本当に理解するのに十分な Java も知りませんが、代わりにNULLまたはNoneを試してみ?ましたか? これは、Javascript から呼び出しを行うときに RESTful API で使用されるコールバックです。やってみて。

于 2011-08-08T05:14:37.630 に答える