Facebook登录 - Swift / iOS,如何获得用户位置和家乡?

时间:2018-03-27 09:45:56

标签: ios swift facebook-graph-api facebook-login facebook-sdk-4.x

我的问题是:如何在使用Facebook SDK登录时从Facebook帐户获取用户位置和家乡?我可以收到电子邮件,姓名等,但是当我想要获得位置和家乡(设置权限)时 - 我只能在使用Facebook SDK中连接到我的应用程序的Facebook个人资料登录时获取它。使用我以外的个人资料登录时,Facebook API仅返回电子邮件和姓名,但会跳过位置和家乡。

我在Graph API资源管理器中设置了用户访问令牌,其中包含user_location和user_hometown的权限(我猜测只为我的帐户设置了访问令牌)。

是否可以为将登录我的应用的所有潜在用户设置这些权限?

代码:

func FBLogin() {
    FBSDKLoginManager().logIn(withReadPermissions: ["email", "public_profile", "user_location", "user_hometown"], from: self) {
        (result, err) in
        if err != nil {
            print("FB Login failed:", err)
            return
        }

        self.showUserInfo()
    }
}

func showUserInfo() {
    FBSDKGraphRequest(graphPath: "/me", parameters: ["fields": "id, location, hometown, name, first_name, last_name, email, picture.type(large)"]).start { (connection, result, err) in
        if err != nil {
            print("Failed to start graph request")
            return
        }

        print(result)
    }
}

0 个答案:

没有答案