Swift:Facebook Graph API不接受有效的access_token

时间:2019-04-24 04:58:17

标签: swift facebook-graph-api http-status-code-403

我正在Mac上从命令行运行swift脚本。我只是想发布一个带有我已在其他浏览器中验证过的access_token的URL。 Facebook不接受该帖子。我正在迅速使用URLSession,而在不是 Facebook SDK中使用了。

guard let url = URL(string: "https://graph.facebook.com/aumuaamata?") else { return }
let session = URLSession(configuration: URLSessionConfiguration.default, delegate: nil, delegateQueue: nil)

var request = URLRequest(url: url)
request.httpMethod = "POST"

let postString = "access_token=433263852003213|gLKD8g4ZAlADEDSSKqy8u_KZ_0"
request.httpBody = postString.data(using: .utf8)

request.addValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")

let runLoop = CFRunLoopGetCurrent()
let task = session.dataTask(with: request, completionHandler: { data, response, error in
     if error == nil {
         print("it works!")
     } else {
         print("task error: \(error!)")
     }
     CFRunLoopStop(runLoop)
})
task.resume()
CFRunLoopRun()

Facebook回复A page access token is required to request this resourceinsufficient_scope

我尝试将access_token添加到URL,然后像这样进行编码:

guard let escapedUrlString = urlRawString.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed) else { return }

但是该脚本无法运行,并说它不是有效的URL。键入浏览器,一切正常。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这是修复程序。我尝试了一下curl并遇到了同样的问题。

dbn = DBI.connect('DBI:Mysql:DBNAME:IP', 'USERNAME', 'PWD')

奇怪的是,这是必要的,但确实可行!

不,我发布的示例令牌无效(可能)。