Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用Swift SDK GraphSharer共享特定Facebook页面_Ios_Facebook_Facebook Graph Api - Fatal编程技术网

Ios 使用Swift SDK GraphSharer共享特定Facebook页面

Ios 使用Swift SDK GraphSharer共享特定Facebook页面,ios,facebook,facebook-graph-api,Ios,Facebook,Facebook Graph Api,在我的iOS应用程序中,我尝试使用Facebook Swift SDK,以便用户可以将URL发布到他们管理的特定Facebook页面 我已设法使以下代码正常工作-但它只将帖子共享到我的主页时间线: let content = LinkShareContent(url: URL(string: urlString)!) let sharer = GraphSharer(content: content) sharer.failsOnInvalidData = true sharer.comple

在我的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)"
loginManager.logIn(withPublishPermissions: ["publish_actions", 
    "manage_pages", "publish_pages"], ...
但是,当我在发布之前设置此属性时,我得到一个错误:

失败(错误域=nsurErrorDomain代码=-1002“不支持的URL”


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

我设法解决了这个问题。结果表明,上面的graphNode路径是正确的,但由于收到错误消息,我找错了位置。相反,我只需要指定accessToken参数

graphSharer.accesstoken = myPageAccessToken 
注意:访问令牌不是用户的当前访问令牌,而是在调用/me/accounts API时可以检索的访问令牌

var graphPath = "/me/accounts"
然后,我在页面上发布了一个问题,因为我只请求了“发布”操作权限。从文档中看,这似乎是合适的,但它只在我请求进一步权限时起作用,如下所示:

sharer.graphNode = "/\(pageId)"
loginManager.logIn(withPublishPermissions: ["publish_actions", 
    "manage_pages", "publish_pages"], ...
希望这对将来的人有用。:-)