这是我的第一个主题,我希望你能帮助我(请用我的英语很好,因为我的第一语言是法语)thx :))
我有一个问题,我正在尝试使用Facebook Android Facebook SDK v3获取应用程序访问令牌,但到目前为止我没有成功。
我在互联网上看到要获取应用令牌,我们需要访问该链接:
https://graph.facebook.com/oauth/access_token client_id=*************&client_secret=***********************&%20grant_type=client_credentials
所以我创建了一个请求对象来获取应用程序令牌:
Bundle bundle = new Bundle();
bundle.putString("client_id", appId);
bundle.putString("client_secret", appSecret);
bundle.putString("grant_type", "client_credentials");
Request request = new Request(null, "oauth/access_token", bundle, HttpMethod.GET);
Response resp = request.executeAndWait();
对象'response'返回一个GraphObject,如下所示:
GraphObject{graphObjectClass=GraphObject, state={"FACEBOOK_NON_JSON_RESULT":"access_token"}}
但访问令牌不包含在请求返回的响应中。
但是,当我在浏览器中启动链接时,我得到一个页面:
access_token=[the_access_token]
为什么我不能得到同样的答案? 难道我做错了什么?有没有人有解决方案?
非常感谢!
答案 0 :(得分:-1)
我有同样的问题。
访问令牌不是JSON类型。所以你不能使用facebook api的'request'和'response'。 你将在链接下找到解决方案。
或在代码
下查看public static void getAppAccessToken(){
String url = "https://graph.facebook.com/oauth/access_token?client_id="+CLIENT_ID+"&client_secret="+CLIENT_SECRET+"&grant_type=client_credentials";
InputStream is;
String result;
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(url);
try{
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
is = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
is.close();
result=sb.toString();
result = result.split("=")[1];
appAccessToken = result;
}
catch(Exception e)
{
}
}