我正在使用Twitter的REST API授权一个应用程序。我刚刚用
https://api.twitter.com/oauth/authorize
并从重定向uri获取了oauth_验证程序。
然后我就用了
https://api.twitter.com/oauth/access_token
获取访问令牌。
问题是,我从这个方法得到的响应格式是text/plain
。就像
oauth_token=783897656863051776-5hQfcJTv4FzFpPcyVRbnjPUbJXR29
我的问题是如何获得application/json格式的响应。任何帮助都将不胜感激!!!
您需要像解析application/x-www-form-urlencoded content一样解析它,任何带有HTTP客户端库的语言都应该提供此功能。但目前尚不清楚您使用的是什么语言和库。
此示例使用joauth库解析
protected static Map<String, String> parseTokenMap(String tokenDetails) {
KeyValueHandler.SingleKeyValueHandler handler =
new KeyValueHandler.SingleKeyValueHandler();
KeyValueParser.StandardKeyValueParser bodyParser =
new KeyValueParser.StandardKeyValueParser("&", "=");
bodyParser.parse(tokenDetails, Collections.singletonList(handler));
return handler.toMap();
}
如果访问令牌请求是有效的且被授权,授权服务器如5.1节所述颁发访问令牌以及可选的刷新令牌。刷新令牌不应该包含在内。 如果请求因客户端身份验证失败或无效,授权服务器如5.2节所述的返回错误响应。 一个样例成功响应: HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 Cache-Control: no-store Pragma:
如果访问令牌请求是有效的且被授权,授权服务器如5.1节所述颁发访问令牌以及可选的刷新令牌。如果请求客户端身份验证失败或无效,授权服务器如5.2节所述的返回错误响应。 一个样例成功响应: HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 Cache-Control: no-store Pragma: no-cache { "
如果资源所有者许可访问请求,授权服务器颁发访问令牌,通过使用按附录B的“application/x-www-form-urlencoded”格式向重定向URI的片段部分添加下列参数传递访问令牌至客户端: access_token 必需的。授权服务器颁发的访问令牌。 token_type 必需的。如7.1节所述的颁发的令牌的类型。值是大小写不敏感的。 expires_in 推荐的。以秒为单位的访问令
如果访问令牌请求是有效的且被授权,授权服务器如5.1节所述颁发访问令牌以及可选的刷新令牌。如果请求客户端身份验证失败或无效,授权服务器如5.2节所述的返回错误响应。 一个样例成功响应: HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 Cache-Control: no-store Pragma: no-cache { "
访问令牌是授权服务器分配的一种令牌。 如果访问令牌请求有效且授权,则授权服务器发出访问令牌。 如果令牌访问请求无效或未经授权,则授权服务器返回错误响应。 访问令牌由授权服务器在接受客户端应用程序发送的客户端ID,客户端密码和授权代码时提供。 一旦用户接收到令牌,就可以将其发送到诸如Facebook,Google等的访问资源以访问与登录用户相关的系统中的资源。 访问令牌响应包含以下JSON结构。 {