Facebook Graph API - 获得相互喜欢

时间:2016-07-24 08:50:15

标签: ios swift facebook facebook-graph-api

与Facebook Graph API相互喜欢时,我遇到了一个问题。上下文如下:

  • userA是iOS应用程序的请求者
  • userA和userB已从iOS应用
  • 授予“user_likes”权限
  • userA和userB Facebook好友

我的应用程序此部分的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好友的用户进行互动吗?

1 个答案:

答案 0 :(得分:2)

我终于找到了这个问题。

首先:即使获得user_likes权限,也可以通过FB用户帐户隐私配置中的公开显示用户喜欢 >。 资料来源:Facebook graph api empty data when getting user likes

其次,如果用户在Facebook上朋友,则该请求还必须包含参数appsecret_proofhttps://developers.facebook.com/docs/graph-api/securing-requests)。因此,出于安全原因,请求必须从您的服务器执行,而不是从您的应用程序执行。资料来源:https://developers.facebook.com/bugs/101463963524794/

希望有一天可以帮助别人!