【问题标题】:Sharing to specific Facebook page using Swift SDK GraphSharer使用 Swift SDK GraphSharer 分享到特定的 Facebook 页面
【发布时间】:2018-07-17 23:10:40
【问题描述】:

在我的 iOS 应用中,我尝试使用 Facebook Swift SDK,以便用户可以将 URL 发布到他们管理的特定 Facebook 页面。

我已经设法让以下代码正常工作 - 但它只将帖子分享到我的家庭时间线:

let content = LinkShareContent(url: URL(string: urlString)!)

let sharer = GraphSharer(content: content)
sharer.failsOnInvalidData = true
sharer.completion = {
    (result) in

    print(result)
}

do {
    try sharer.share()
}
catch (let error) {
    print(error.localizedDescription)
}

我相信我需要使用graphNode属性来指定目标页面并且正确的格式如下:

sharer.graphNode = "/\(pageId)"

但是,当我在发布之前设置此属性时,出现错误:

失败(错误域=NSURLErrorDomain Code=-1002 "不支持的 URL"

我尝试了十几种不同的格式来指定节点,但它们都返回相同的错误,我找不到任何工作示例。

【问题讨论】:

    标签: ios facebook facebook-graph-api


    【解决方案1】:

    我设法解决了这个问题。事实证明,上面的 graphNode 路径是正确的,但由于收到的错误消息,我在错误的地方寻找。相反,我只需要指定 accessToken 参数。

    graphSharer.accesstoken = myPageAccessToken 
    

    注意:访问令牌不是用户当前的访问令牌,而是您在调用 /me/accounts API 时可以检索到的访问令牌。

    var graphPath = "/me/accounts"
    

    然后我在页面上发布时也遇到了问题,因为我只请求了 publish_actions 权限。从文档来看,这似乎是合适的,但它只适用于我请求进一步权限的情况,如下所示:

    loginManager.logIn(withPublishPermissions: ["publish_actions", 
        "manage_pages", "publish_pages"], ...
    

    希望这对将来的某人有用。 :-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-09
      • 1970-01-01
      • 2015-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-13
      相关资源
      最近更新 更多