与Facebook Graph API相互喜欢时,我遇到了一个问题。上下文如下:
我的应用程序此部分的Swift代码如下:
self.FBLoginButton.readPermissions = ["public_profile", "email", "user_friends", "user_birthday", "user_about_me", "user_likes"]
...
...
let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: userBFBid, parameters: ["fields": "context.fields(mutual_likes).limit(10)"])
graphRequest.startWithCompletionHandler({ (connection, result, error) -> Void in
if ((error) != nil) {
print("Error: \(error)")
} else {
print("res: \(result)")
}
})
结果如下:
res: {
context = {
id = dXNlcl9jb250ZAXh0OgGQg20zLjrZAswOnuX6*******;
"mutual_likes" = {
data = (
);
summary = {
"total_count" = 0;
};
};
};
id = 101532998**********;
}
正如你所看到的,相互喜欢的东西不会被退回。
我向userA和userC提出了相同的请求是Facebook好友,正常工作,所有他们的共同喜欢都会被退回。
再次:userA,userB和userC安装了应用并授予 user_likes 权限。
有任何想法修复它并与两个不是Facebook好友的用户进行互动吗?
答案 0 :(得分:2)
我终于找到了这个问题。
首先:即使获得user_likes
权限,也可以通过FB用户帐户隐私配置中的公开显示用户喜欢 >。
资料来源:Facebook graph api empty data when getting user likes
其次,如果用户在Facebook上不朋友,则该请求还必须包含参数appsecret_proof
(https://developers.facebook.com/docs/graph-api/securing-requests)。因此,出于安全原因,请求必须从您的服务器执行,而不是从您的应用程序执行。资料来源:https://developers.facebook.com/bugs/101463963524794/
希望有一天可以帮助别人!