【发布时间】:2014-08-22 20:14:11
【问题描述】:
因此,我已经对此进行了相当长的调查,并决定与群众联系。
我知道,当通过 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 开发网站上设置了我的应用,并且我还向开发网站添加了正确的包标识符。
【问题讨论】:
-
嗯,反对票是怎么回事?这是一个真正的问题?我在这里错过了什么?!?!?如果它是一个欺骗或明显的问题,我会删除它,但在正确方向上的一点提示将不胜感激
标签: ios facebook swift slrequest