Publicar en Facebook desde la aplicación de iOS con Swift

Así que he estado investigando esto desde hace bastante time y he decidido acercarme y preguntar a las masas.

Sé que al publicar en Facebook a través de una aplicación de iOS, la aplicación necesita leer antes de escribir, es decir leer el correo electrónico de los usuarios antes de publicar en un muro. Y sé que estas lists de permissions no se pueden hacer en la misma request. Así que he juntado un código que parece seguir.

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.cnetworkingential.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) } } } 

Lamentablemente aún estoy recibiendo

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

Configuré mi aplicación en el sitio dev de Facebook y también agregué el identificador del package correcto al sitio dev.

OK así que la respuesta fue que "publish_stream" no parece funcionar como un permiso a pesar de muchos tutoriales que lo usan.

¿Ha intentado agregar su ID de la aplicación FB al plist?

 <key>FacebookAppID</key> <string>101010101010</string> <key>FacebookDisplayName</key> <string>MyCoolProject</string> 

Obtiene el ID de la aplicación FB del sitio del desarrollador.