2

さて、私はOAuthを初めて使用し、Twitterと統合するアプリを作成しています。

私はTwitter4jを使用しており、その指示に従っています。そこに問題はありません。

  • ユーザーにアプリの認証を依頼できます
  • リクエストトークンをアクセストークンと交換します
  • ユーザーがアプリを承認したら、オブジェクトをシリアル化します
  • シリアル化が発生する方法は次のとおりです

    FileOutputStream fos = getContext().openFileOutput(fileName, Context.MODE_PRIVATE);
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    oos.writeObject(accessToken);
    oos.close();
    

したがって、アクセストークンを再度使用するときは、オブジェクトを非正規化し、新しいTwitterオブジェクトに割り当てて、次のようにステータスの更新を呼び出します。

AccessToken twitterToken = objectDeserialization();
Twitter twitter = new TwitterFactory().getInstance();
twitter.setOAuthConsumer(twitterApiKey, twitterApiSecret);
twitter.setOAuthAccessToken(twitterToken);
twitter4j.Status status = twitter.updateStatus("This is sparta! :)");

問題は、私が401を取得していることです。

私が読んだところはどこでも、トークン交換のすべてをもう一度行うことはないと確信しています。私が間違っている?

たぶん、古いオブジェクトを逆シリアル化するのではなく、アクセストークンとアクセストークンシークレットを保存して、新しいオブジェクトを最初から作成する必要がありますか?

あなたの助けに感謝 :-)

4

1 に答える 1

2

わかりました。問題を解決できました。解決策は、トークンとトークンシークレットのみを保存してから、新しいオブジェクトを作成することです。

AccessToken twitterToken = objectDeserialization();
Twitter twitter = new TwitterFactory().getInstance();
twitter.setOAuthConsumer(twitterApiKey, twitterApiSecret);
twitter.setOAuthAccessToken(new AccessToken(twitterToken.getToken(), twitterToken.getTokenSecret()));
twitter4j.Status status = twitter.updateStatus("This is sparta! :)");
于 2012-11-06T21:50:00.020 に答える