Ios Facebook图形API-获得共同喜欢
我在使用Facebook Graph API获得共同喜欢时遇到了一个问题。背景如下:Ios Facebook图形API-获得共同喜欢,ios,swift,facebook,facebook-graph-api,Ios,Swift,Facebook,Facebook Graph Api,我在使用Facebook Graph API获得共同喜欢时遇到了一个问题。背景如下: self.FBLoginButton.readPermissions = ["public_profile", "email", "user_friends", "user_birthday", "user_about_me", "user_likes"] ... ... let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: us
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是来自iOS应用程序的请求者
- userA和userB已从iOS应用程序授予“user_likes”权限
- userA和userB不是Facebook上的朋友
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**********;
}
结果如下:
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安装了应用程序,并授予了用户的权限
有没有办法解决这个问题,并与两个不是Facebook好友的用户取得共同的喜好呢?我终于找到了问题所在 首先:用户喜好必须通过FB用户帐户隐私配置中的public可见,才能通过API访问,即使授予了
user\u likes
权限。
资料来源:
其次,如果用户不是Facebook上的朋友,则请求还必须包含参数appsecret\u-proof
()。因此,出于安全原因,请求必须从服务器执行,而不是从应用程序执行。资料来源:
希望有一天能帮助别人