java - 使用 javax.ws.rs 的 Twitter oauth2

标签 java twitter oauth

我有这个使用 javax.ws.rs 的 twitter 请求

    WebTarget target = new WebTargetBuilder(client, OAUTH_API_ENDPOINT).build();

    Builder request = target
            .request(MediaType.APPLICATION_JSON)
            .header("Authorization", "Basic " + encodedCredentials)
            .header("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
    Response postResponse = request
            .post(Entity.entity("grant_type=client_credentials", MediaType.TEXT_PLAIN));

    System.out.println(postResponse.readEntity(String.class));

encodedCredentials 是我以 base 64 编码的消费者 secret 和消费者 key 。

我尝试做的请求是:

POST /oauth2/token HTTP/1.1
Host: api.twitter.com
User-Agent: My Twitter App v1.0.23
Authorization: Basic eHZ6MWV2RlM0d0VFUFRHRUZQSEJvZzpMOHFxOVBaeVJn
                 NmllS0dFS2hab2xHQzB2SldMdzhpRUo4OERSZHlPZw==Content-Type: application/x-www-   form-urlencoded;charset=UTF-8
Content-Length: 29
Accept-Encoding: gzip

grant_type=client_credentials

我不断收到 403 Forbidden: {"errors":[{"code":170,"message":"Missing required parameter: grant_type","label":"forbidden_​​missing_parameter"}]}

好像帖子正文设置不正确,谁知道怎么设置?

最佳答案

您可以尝试像这样更改 POST 请求正文/实体的内容类型:

 .post(Entity.entity("grant_type=client_credentials",  MediaType.APPLICATION_FORM_URLENCODED)

关于java - 使用 javax.ws.rs 的 Twitter oauth2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27917249/

相关文章:

ruby-on-rails - 使用 Rails、Capybara 和 Selenium 通过 oauth 进行集成测试登录?

java - 未收到通过 ovh 地址使用 spring mail 发送的电子邮件

java - 如何在没有部署描述符的情况下在 Spring 中注册监听器

java - NetworkOnMainThreadException 即使在实现 AsyncTask 之后

sql - 是否有可能在 YQL 中获得两个结果集的交集或差异?

python-Twitter-api

javascript - Slack oauth.access API 返回 bad_redirect_uri 而不请求 redirect_uri

java - 如何在自己的类中创建一个文本文件

ios - JSON 推文发布日期

java - 每次调用webservice之前我们需要生成token id吗