我已将Facebook登录集成到我的网络应用程序中。 当我通过发送所需的详细信息请求时,我得到“代码”参数,然后我必须将获得的“代码”交换为“access_token”。因为我正在进行HTTP GET调用: -
https://graph.facebook.com/oauth/access_token?
client_id={app-id}
&redirect_uri={redirect-uri}
&client_secret={app-secret}
&code={code-parameter}
我得到的回应是
HTTP/1.1 200 OK [Content-Type: text/plain; charset=UTF-8, Access-Control-Allow-Origin: *, X-FB-Rev: 1624746, Pragma: no-cache, Cache-Control: private, no-cache, no-store, must-revalidate, Facebook-API-Version: v1.0, Expires: Sat, 01 Jan 2000 00:00:00 GMT, X-FB-Debug: XM3kCi/2T3bPfe2/QRmn08rBwHTn7SkY8iADhkirVCZ4HOKPGH45zK8WWq0/5+KDFdUWwIn7blnjYfy1py6jrQ==, Date: Wed, 04 Mar 2015 06:25:17 GMT, Connection: keep-alive, Content-Length: 245]
在响应中,我没有获得进一步进入应用程序所需的access_token参数。 根据Facebook文档的回应应该看起来像
access_token={access-token}&expires={seconds-til-expiration}
对此的任何帮助都非常感谢。
答案 0 :(得分:1)
最后设法获得了答案的解决方案.Facebook给出了access_token,但需要使用entityutils对象检索,然后转换为UTF-8类型。这些代码对我有用,我能够得到来自Facebook API响应的access_token对象。
HttpGet request = new HttpGet(FBAPI_HITURL.toString());
HttpResponse response = httpClient.execute(request);
HttpEntity entity = response.getEntity();
String responseString = EntityUtils.toString(entity, "UTF-8");
responseString将包含“access_token = {access-token}& expires = {seconds-til-expiration}”
格式的回复