【问题标题】:Do I have to follow OAuth workflow (request token -> access token -> API call) everytime?我是否每次都必须遵循 OAuth 工作流程(请求令牌 -> 访问令牌 -> API 调用)?
【发布时间】:2012-11-07 05:50:00
【问题描述】:

好的,我是 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。

在我读到的所有地方,我都确信我不应该再经历整个代币交换的事情。我错了吗?

也许我应该简单地存储 Access Token 和 Access Token Secret 并从头开始创建一个新对象,而不是反序列化旧对象?

感谢您的帮助 :-)

【问题讨论】:

    标签: android twitter-oauth twitter4j


    【解决方案1】:

    好的,我设法解决了我的问题,解决方案是:只保存令牌和令牌秘密,然后创建一个新对象。

    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! :)");
    

    【讨论】:

      猜你喜欢
      • 2018-09-20
      • 1970-01-01
      • 2020-06-08
      • 2011-09-19
      • 2011-01-19
      • 2012-03-23
      • 1970-01-01
      • 2019-09-16
      • 2012-03-27
      相关资源
      最近更新 更多