【问题标题】:Twitter bearer token (use in Java)Twitter 不记名令牌(在 Java 中使用)
【发布时间】:2016-01-22 06:58:57
【问题描述】:

我在为我的应用程序获取 twitter 不记名令牌时遇到问题。

虽然,我收到了来自 Twitter 的成功回复,如下所述: "POST https://api.twitter.com/oauth2/token?grant_type=client_credentials 返回的响应状态为 200 OK"。

但是当我尝试使用以下语句从响应中检索不记名令牌时,我得到一长串垃圾字符:

String str = response.getEntity(String.class);

除此之外,我还尝试了两种方法:

1) getHeaders 方法返回:

content-disposition=[attachment; filename=json.json]

所以,看起来服务器正在发送附件中的令牌,所以我将上面的内容更改为:

File r_file = response.getEntity(File.class);

但是这个临时文件也只包含垃圾字符

2) 我尝试使用 Base64 对这些字符进行解码,但即使这样也报错了。

【问题讨论】:

    标签: java twitter bearer-token


    【解决方案1】:

    您是用 Java 还是其他方式编写应用程序? 这是来自 twitter 文档的link,关于多种语言的示例

    【讨论】:

    • 我是用 JAVA 写的。我相信语言不会成为限制,对吧?
    • 完全没有,您是否使用任何类型的 twitter API 包装器,[twitter4j] 非常简单,有很好的示例 (twitter4j.org/en/)
    • 不,我只是使用 JAX-RS jersey 库来发送和读取请求和响应,但没有别的。
    • Twitter4j 管理您的 GET、POST 请求,您只需要正确配置它并提供您的 Token,同时配置将使用您的 OAuth 令牌和凭据接收响应的文件,然后您可以返回以您喜欢的方式使用这些令牌使用 API,虽然我对您的方法很感兴趣,但我还没有找到将我的应用程序更改为 Web 服务的原因。
    【解决方案2】:

    我遇到了同样的问题。 我试图使用 Volley 库从 Android 客户端获取承载令牌以进行网络连接。响应状态为200 OK,但响应正文是一个字符串,充满了有趣的垃圾字符。
    我手动设置了 3 个标题:

    "Authorization": "Basic .....", 
    "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
    "Accept-Encoding": "gzip"
    

    删除"Accept-Encoding" 标头后,一切正常。响应是预期格式正确的 JSON:

    {"token_type": "bearer", "access_token": "......."}
    

    【讨论】:

      猜你喜欢
      • 2013-12-19
      • 1970-01-01
      • 2019-03-30
      • 2021-04-06
      • 2020-10-15
      • 2020-10-20
      • 2015-02-22
      • 1970-01-01
      • 2020-11-04
      相关资源
      最近更新 更多