3

私はさまざまな方法を試し、インターネット全体を検索して、OAuth で JTwitter を使用するためのチュートリアルを見つけました。これが私が達成した次のステップです

Jtwitter と Signpost の両方をダウンロード Java Builder で Jar として追加

実行するシンプルなボタンを作成しました

public class ShareGenerator extends Activity {

    private static final String JTWITTER_OAUTH_KEY = "this_is_populated";
    private static final String JTWITTER_OAUTH_SECRET = "this_is_populated";

    Button menupopButton;

     @Override
        public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
  setContentView(R.layout.share);
  this.setContentView(R.layout.share);
  this.txShare = (TextView)this.findViewById(R.id.lblshare);
  this.menupopButton = (Button)this.findViewById(R.id.menupop);


  menupopButton.setOnClickListener(new View.OnClickListener()
  { 
      public void onClick(View v) 

      {
          TwitterSend();

      } 
 }); 

     }

そして私は私のクラスを持っています

public void TwitterSend () {

                 OAuthSignpostClient client = new OAuthSignpostClient(JTWITTER_OAUTH_KEY, JTWITTER_OAUTH_SECRET, "oob");
                    Twitter jtwit = new Twitter("bob", client);
                    // open the authorisation page in the user's browser
                    client.authorizeDesktop();
                    // get the pin
                    String v = client.askUser("Please enter the verification PIN from Twitter");
                    client.setAuthorizationCode(v);
                    // Optional: store the authorisation token details
                    Object accessToken = client.getAccessToken();
                    // use the API!
                    jtwit.setStatus("Messing about in Java");

             }

ただし、OAuth画面をポップアップさせることさえできません。そこに到達するとクラッシュします。少なくともOAuth画面を見るのを手伝ってくれる人はいますか? インポートが正しく設定されています。

4

3 に答える 3

3

問題は、java.awt.Desktopを使用する次の行にあります。

// open the authorisation page in the user's browser
client.authorizeDesktop();

これはデスクトップPCで機能しますが、Androidでは機能しません。

代わりに、からURLを取得し、client.authorizeUrl();そこにユーザーを送信します。たとえば、次のようなものです。

URI url = client.authorizeUrl();
Intent myIntent = new Intent(Intent.VIEW_ACTION);
myIntent.setData(url);
startActivity(myIntent);

しかし、私はAndroidコーダーではありません!の代わりにコールバックを使用することで、ほぼ確実に改善できますoob。うまくいけば、他の誰かがそのためのコードを提供することができます...

于 2010-07-09T07:31:50.973 に答える
1

ダニエルはかなり良い出発点を提供します。これは、Android アプリでこれを実装する方法です。

    OAuthSignpostClient authClient = new OAuthSignpostClient('apiKey','apiSecret','callbackUrl');

                java.net.URI jUrl = authClient.authorizeUrl();
                Uri.Builder uriBuilder = new Uri.Builder();
                uriBuilder.encodedPath(jUrl.toString());

                Intent myIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(jUrl.toString()));
                startActivity(myIntent);

もちろん、'apiKey'簡潔にするためになどを使用しました。OAuthSignpostClientコンストラクターで独自のキー、シークレット、およびコールバック URL を使用する必要があります。

注: JTwitter が提供する Java.net.URI を Android.net.Uri に変換して、新しいインテントを開始するために使用する必要があります。

この後、インテント フィルターを使用してコールバック URL をキャッチし、Twitter API から取得するユーザー トークンとシークレットを使用して何かを行う必要があります。

于 2011-10-19T12:08:48.787 に答える
-2

この投稿を参照してください [気になる場合はリビジョン履歴を確認してください]

于 2010-11-17T07:35:08.687 に答える