Swift 在Graph API Explorer工作时,使用iOS SDK发布到FB页面失败
仍在与此d***FB SDK抗争:-/ 基本上,我有一个应用程序,应该发布内容到FB页面。为了实现这一点,我使用FBSDK登录。然后我请求如下授权Swift 在Graph API Explorer工作时,使用iOS SDK发布到FB页面失败,swift,facebook,facebook-graph-api,Swift,Facebook,Facebook Graph Api,仍在与此d***FB SDK抗争:-/ 基本上,我有一个应用程序,应该发布内容到FB页面。为了实现这一点,我使用FBSDK登录。然后我请求如下授权 LoginManager().logIn(permissions: ["pages_manage_posts", "pages_read_engagement", "pages_show_list"], viewController: controller) { result in
LoginManager().logIn(permissions: ["pages_manage_posts", "pages_read_engagement", "pages_show_list"], viewController: controller) { result in
print("res \(result)")
switch result {
case .success:
// the pageId is in data>id
Defaults[\.facebookSwitchOn] = true
GraphRequest.init(graphPath: "me/accounts").start { (connexion, result, error) in
guard let result = result as? [String:Any],
let dataArray = result["data"] as? Array<Any>,
let data = dataArray.first as? [String:Any],
let pageId = data["id"] as? String,
let access = data["access_token"] as? String else { return }
print("\(pageId)")
Defaults[\.facebookPageId] = pageId
Defaults[\.facebookPageAccessToken] = access
}
completion(true)
case .failed(let error):
completion(false)
MessageManager.show(.basic(.custom(title: "Oups".local(), message: error.localizedDescription, buttonTitle: nil, configuration: MessageDisplayConfiguration.alert)), in: controller)
default: ()
}
}
GraphRequest
.init(graphPath: "\(pageId)/photos",
// parameters: ["source" : image, "caption" : text, "access_token" : token, "published" : false],
parameters: ["caption" : contentDescription, "url" : "https://www.cdiscount.com/pdt2/9/2/8/1/700x700/889698377928/rw/figurine-funko-pop-deluxe-game-of-thrones-daen.jpg", "access_token" : token],
httpMethod: .post)
.start { (connexion, result, error) in
completion(Result.success(true))
}
然而,我得到一个奇怪的错误,告诉我publish_操作已被弃用。
我用Charles记录了请求,在这里。
下面是GraphAPI资源管理器的调试:
curl -i -X POST \ "https://graph.facebook.com/v7.0/104226051340555/photos?caption=test%20message%20from%20Graph%20API%20for%20photo&url=https%3A%2F%2Fwww.cdiscount.com%2Fpdt2%2F9%2F2%2F8%2F1%2F700x700%2F889698377928%2Frw%2Ffigurine-funko-pop-deluxe-game-of-thrones-daen.jpg&access_token=<access token sanitized>"
curl-i-X POST\”https://graph.facebook.com/v7.0/104226051340555/photos?caption=test%20message%20from%20Graph%20API%20for%20photo&url=https%3A%2F%2Fwww.cdiscount.com%2Fpdt2%2F9%2F2%2F8%2F1%2F700x700%2F889698377928%2Frw%2Ffigurine-funko pop豪华王座游戏daen.jpg&access_token=”
基本上,除了浏览器中的参数是URL参数并且它们被封装在json中之外,这是相同的请求
我不明白为什么graph explorer请求成功,而SDK请求失败。
我完全被卡住了:-/
谢谢你的帮助