加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用Swift从iOS应用程序发布到Facebook

发布时间:2020-12-14 04:32:53 所属栏目:百科 来源:网络整理
导读:所以我现在已经调查了很长一段时间,并决定联系并向群众询问. 我知道,当通过iOS应用程序发布到Facebook时,应用程序需要在写入之前进行读取,即读取用户电子邮件,然后才能发布到墙上.我知道这些权限列表不能在同一个请求中完成.所以我拼凑了看起来如下的代码. c
所以我现在已经调查了很长一段时间,并决定联系并向群众询问.

我知道,当通过iOS应用程序发布到Facebook时,应用程序需要在写入之前进行读取,即读取用户电子邮件,然后才能发布到墙上.我知道这些权限列表不能在同一个请求中完成.所以我拼凑了看起来如下的代码.

class func postToFacebook(message: String,appID: String){

    var accountStore = ACAccountStore()
    var accountType = accountStore.accountTypeWithAccountTypeIdentifier(ACAccountTypeIdentifierFacebook)

    var optionsForPosting = [ACFacebookAppIdKey:appID,ACFacebookPermissionsKey: ["email"],ACFacebookAudienceKey: ACFacebookAudienceFriends]

    accountStore.requestAccessToAccountsWithType(accountType,options: optionsForPosting) {
        granted,error in
        if granted {

                var options = [ACFacebookAppIdKey:appID,ACFacebookPermissionsKey: ["publish_stream","publish_actions"],ACFacebookAudienceKey: ACFacebookAudienceFriends]

                accountStore.requestAccessToAccountsWithType(accountType,options: options) {
                    granted,error in
                    if granted {
                        var accountsArray = accountStore.accountsWithAccountType(accountType)

                            if accountsArray.count > 0 {
                            var facebookAccount = accountsArray[0] as ACAccount

                            var parameters = Dictionary<String,AnyObject>()
                            parameters["access_token"] = facebookAccount.credential.oauthToken
                            parameters["message"] = message

                            var feedURL = NSURL(string: "https://graph.facebook.com/me/feed")

                            let posts = SLRequest(forServiceType: SLServiceTypeFacebook,requestMethod: SLRequestMethod.POST,URL: feedURL,parameters: parameters)

                            let handler: SLRequestHandler =  { (response,urlResponse,error) in
                                println(response)
                                println(urlResponse.statusCode)
                            }

                            posts.performRequestWithHandler(handler)
                        }
                    }
                    else{
                        println("Access denied")
                        println(error.localizedDescription)
                    }
                }
        }
        else{
            println("Access denied")
            println(error.localizedDescription)
        }
    }
}

不幸的是我还在

The Facebook server could not fulfill this access request: Invalid permission: publish_stream

我已经在Facebook开发站点上设置了我的应用程序,并且我还在开发站点添加了正确的包标识符.

解决方法

好的,所以答案是“publish_stream”似乎不是作为权限工作,尽管许多教程使用它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读