【问题标题】:Facebook graph API link parameter returning nilFacebook 图形 API 链接参数返回 nil
【发布时间】:2019-03-12 06:24:21
【问题描述】:

我正在尝试存储登录的 facebook 用户的 facebook 用户名(例如 www.facebook.com/james.dean01),以便通过 Messenger(类似于 How to open Facebook Messenger and direct to someone?)与人们联系。我正在配置一个按钮,该按钮会将用户直接发送到某人的信使聊天,但为此我需要他们的用户名/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)

            }
        }
    }
  }
}

【问题讨论】:

  • 您是否请求了必要的许可? developers.facebook.com/docs/facebook-login/… 但我怀疑你是否会通过审查得到这个,因为你要做的基本上就是它所说的有一个不允许的用例:“尝试以编程方式确定某人的 Facebook 用户名或规范用户 ID。”
  • aaaah 我明白了,所以我需要审核我的应用才能访问他们的 Facebook 页面的链接? @misorude
  • 是的,大多数权限和一些扩展功能的使用都需要经过 Facebook 审核,然后才能在您的实时应用中使用。
  • 谢谢兄弟,如果您发布答案,我会将其标记为解决方案或人们在这里所做的任何事情:) @misorude

标签: ios swift facebook facebook-graph-api messenger


【解决方案1】:

您需要获得必要的许可,https://developers.facebook.com/docs/facebook-login/permissions#reference-user_link

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

但不确定您是否会通过审核,因为您要做的基本上就是它所说的存在不允许的用例:

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

所以不能保证 Facebook 会批准这个;您只能尝试将其提交以供审核,看看您会得到什么反馈。

【讨论】:

    猜你喜欢
    • 2021-06-16
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多