不久之前,我曾经以这种方式使用Graph API接受我的朋友(使用Graph API Explorer):
/me/friends
Run Code Online (Sandbox Code Playgroud)
一切都很完美,但现在,2.0版本,我看到这种方式不适用于没有使用(通过Facebook登录)的应用程序发出请求的朋友,如果我将Graph API Explorer切换到1.0版本,它的功能.
那么,我怎么能用2.0版本做同样的事情呢?
facebook facebook-graph-api facebook-friends facebook-graph-api-v2.0
我正在尝试让所有朋友,登录我的应用程序的用户.
我无法使用此API [朋友]:
https://developers.facebook.com/docs/graph-api/reference/v2.0/user/friends
因为此API仅返回使用应用程序发出请求的任何朋友.
所以我找到了这个API [friendlist]:
https://developers.facebook.com/docs/graph-api/reference/v2.0/friendlist
按照这个答案,我得到了朋友列表.
但是当我试图获得friendlist的成员时,我会得到空列表:
new Request(
session,
"/2692926356774/members",
null,
HttpMethod.GET,
new Request.Callback()
{
public void onCompleted(Response response)
{
/* handle the result */
Log.e(LOG_TAG,"Members: " + response.toString());
}
}
).executeAsync();
Run Code Online (Sandbox Code Playgroud)
2692926356774是我的Acquaintances list id,我尝试了其他一些具有相同结果的id.
我试图获取一个IOS应用程序的Facebook好友列表,但收到来自Facebook的空回复.
如何快速获得面书好友列表?
在v2.0生效的情况下,API /me/friends现在仅限于已授权我们的应用的朋友列表.所以,如果我需要完整的朋友列表,这将无济于事.
但Facebook也添加了一个新的API /me/taggable_friends,我们可以使用它来生成有朋友标记的故事,即使这些朋友不使用我们的应用程序.如果我们想使用可标记的朋友API,该应用程序将需要审核.
那么,在发送审核之前,我想确保我的应用程序是否会获得批准?我很困惑,因为 -
所以我想知道在哪些情况下我们可以使用符合其规则的API,并在发送审核时获得批准.对于使用OG行动,当然它会起作用(也在文件中提到),但如果 - 如果 -
/me/photos使用tags参数上传照片并使用该参数标记所选朋友.(tags文档中没有参数信息,/me/photos但它存在).我只是要求它确保在进行太多更改之前它是否会被批准.
新的2.0版本有一个分页,限制一个请求的朋友数量,这不允许我一次检索所有朋友,虽然有一个参数调用'限制',它只能通过循环'偏移'直到结束.问题是每个用户都有不同数量的朋友!
我一直在寻找几个小时,但仍然没有解决方案..
我正在使用Facebook JavaScript SDK.我可以使用以下方式获取用户的信息:
FB.api('/me', function(response) {
....
});
Run Code Online (Sandbox Code Playgroud)
我得到用户的朋友使用:
FB.api('/me/friends', function(response) {
...
}); //.. it only has two values name and id.
Run Code Online (Sandbox Code Playgroud)
我想得到朋友出生日期和地点.是否有FB.api方法来获取它或我可以使用FB.Data.query获取它?
任何偶然的'me/friends'图形API或friendsFQL表中返回一些只是朋友吗?
我检查了结果,它比我在facebook.com上看到的数量略少
我正在处理的当前代码,出于某种原因,当我这样做时
https://graph.facebook.com/me?access_token=access_token (accesstoken from callback response)
Run Code Online (Sandbox Code Playgroud)
它返回id:某个号码不是我真正的facebook用户ID.它还提供以下链接:
https://www.facebook.com/app_scoped_user_id/<number>
Run Code Online (Sandbox Code Playgroud)
如果我使用来自facebook的访问令牌工具的访问令牌,它将返回我的实际用户ID.
此外,我记得,我工作的旧应用程序,他们只返回实际的用户ID,而不是在这里发生什么.
关于朋友:
使用来自访问令牌工具的访问令牌,我正在获得完整的朋友列表.但是使用应用程序中的令牌,我只有一个朋友(我最近添加了).没有得到发生的事情.
下面是用于在进行一些搜索后获取列表的代码
GraphRequestBatch batch = new GraphRequestBatch(
GraphRequest.newMyFriendsRequest(
accessToken,
new GraphRequest.GraphJSONArrayCallback() {
@Override
public void onCompleted(
JSONArray jsonArray,
GraphResponse response) {
// Application code for users friends
System.out.println("getFriendsData onCompleted : jsonArray " + jsonArray);
System.out.println("getFriendsData onCompleted : response " + response);
try {
JSONObject jsonObject = response.getJSONObject();
System.out.println("getFriendsData onCompleted : jsonObject " + jsonObject);
JSONObject summary = jsonObject.getJSONObject("summary");
System.out.println("getFriendsData onCompleted : summary total_count - " + summary.getString("total_count"));
} catch (Exception e) {
e.printStackTrace();
}
}
})
);
batch.addCallback(new GraphRequestBatch.Callback() {
@Override …Run Code Online (Sandbox Code Playgroud)