javascript REST API 已弃用 v2.1 及更高版本
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/25241099/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
REST API is deprecated for versions v2.1 and higher
提问by Priyanka Jagdale
My aim is to retrieve friend list from facebook.I have the javaScript code.But when I try to run the code, it gives me following error:
我的目标是从 facebook 检索好友列表。我有 javaScript 代码。但是当我尝试运行代码时,它给了我以下错误:
Success Object {error_code: "12", error_msg: "REST API is deprecated for versions v2.1 and higher", request_args: Array[8]}
成功对象 {error_code: "12", error_msg: "REST API 已弃用 v2.1 及更高版本", request_args: Array[8]}
Here is the code:
这是代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title> 'FbFriends'</title>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--<link rel="stylesheet" type="text/css" href="styles.css">-->
</head>
<body>
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<fb:login-button autologoutlink="true" scope="email,public_profile,user_friends" size="large"></fb:login-button>
<script>
FB.init({
appId : 'App Id',
status : false, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
FB.getLoginStatus(function(response) {
if (response.authResponse) {
//getting current logged in user's id from session object
var globaluserid=response.authResponse.userID;
console.log("login Status", +globaluserid);
//fetching friends uids from 'friend' table. We are using FB.api syntax
FB.api(
{
method: 'fql.query',
query: 'SELECT uid2 FROM friend WHERE uid1='+globaluserid
},
function(response) {
console.log('Success', response);
//once we get the response of above select query we are going to parse them
for(i=0;i<response.length;i++)
{
//fetching name and square profile photo of each friends
console.log("Now fetching name..");
FB.api(
{
method: 'fql.query',
query: 'SELECT name,pic_square FROM user WHERE uid='+response[i].uid2
},
function(response) {
//creating img tag with src from response and title as friend's name
htmlcontent='<img src='+response[0].pic_square+' title='+response[0].name+' />';
//appending to div based on id. for this line we included jquery
$("#friendslist").append(htmlcontent);
}
);
}
}
);
}
});
</script>
<div id="fb-root"></div>
<table width="100%" border="0">
<tr>
<td align="left">
<div id="friendslist"> Priyanka </div>
</td>
</tr>
</table>
</body>
</html>
回答by Tobi
The method fql.query
is deprecated. See https://developers.facebook.com/docs/javascript/reference/FB.api/for the current usage.
该方法fql.query
已弃用。有关当前使用情况,请参阅https://developers.facebook.com/docs/javascript/reference/FB.api/。
You can run FQL queries with Graph API versions up to v2.0 like this:
您可以使用最高 v2.0 的 Graph API 版本运行 FQL 查询,如下所示:
FB.api('/fql?q={your_url_encoded_query}', 'get', function(response) {
...
});
You'll have troubles getting the list of friends for apps other than Graph API v1.0, as you're hopefully aware.
正如您希望知道的那样,您在获取 Graph API v1.0 以外的应用程序的好友列表时会遇到麻烦。
Also, you can combine you FQL queries into one:
此外,您可以将 FQL 查询合并为一个:
select uid, name, pic_square from user where uid in (select uid2 from friend where uid1=me())
回答by WizKid
To get the friends list you use /me/friends. That will return all friends that are also using the app. There is no way to get all friends.
要获取好友列表,请使用 /me/friends。这将返回所有也在使用该应用程序的朋友。没有办法得到所有的朋友。