繁体   English   中英

Facebook图形API链接参数返回nil

[英]Facebook graph API link parameter returning nil

我试图存储已登录的Facebook用户的Facebook用户名(例如www.facebook.com/ james.dean01 ),以便通过Messenger(类似于如何打开Facebook Messenger并直接指向某人?与他人建立联系 我正在配置一个按钮,该按钮会将用户直接发送到某人的Messenger聊天,但要这样做,我需要他们的用户名/ facebook URL。 我正在尝试使用“链接”属性(Facebook图形API: https : //developers.facebook.com/docs/graph-api/reference/user )获取指向用户个人资料的链接,该链接可用于此目的,只有链接属性(已打印)返回nil。 我不确定自己在做什么错。 目的是每次用户登录数据时都会读取一次并更新数据库。 下面是代码。

任何帮助将不胜感激!

import FacebookCore

class FacebookService {
static let instance = FacebookService()

let params = ["fields": "email, first_name, last_name, link, picture, name"]

func recordUserData() {
    let graphRequest = GraphRequest(graphPath: "me", parameters: params)
    graphRequest.start {
        (urlResponse, requestResult) in

        switch requestResult {
        case .failed(let error):
            print("error in graph request:", error)
            break
        case .success(let graphResponse):
            if let responseDictionary = graphResponse.dictionaryValue {
                print(responseDictionary)

                let link = responseDictionary["link"] as? String
                let email = responseDictionary["email"] as? String
                let fbId = responseDictionary["id"] as? String
                let name = responseDictionary["name"] as? String

                let picture = responseDictionary["picture"] as? NSDictionary
                let data = picture!["data"] as? NSDictionary
                let url = data!["url"] as? String

                print("Link: \(link)")
                print(url)

            }
        }
    }
  }
}

您需要请求必要的权限, https://developers.facebook.com/docs/facebook-login/permissions#reference-user_link

使用此权限需要先经过Facebook的审查,然后才能在实时应用中使用它。

但是不确定是否可以通过审查获得此信息,因为您要做的实际上是它说的是不允许的用例:

尝试以编程方式确定某人的Facebook用户名或规范的用户ID。

因此,不能保证Facebook会批准这一点。 您只能尝试将其提交以进行审核,并查看收到的反馈。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM