在我的应用中,我想使用 Facebook 的 iOS SDK v4.x 撤销 Facebook 的 publish_actions
权限。 (我在 4.5.1
版本上使用 FBSDKCoreKit
、FBSDKLoginKit
和 FBSDKShareKit
作为 pod。)它正在工作有点像我所期望的那样 - 它返回成功,当我随后使用 Graph API Explorer 获取权限时,它显示 publish_actions
被拒绝。但是,如果我在执行此操作后在本地检查 FBSDKAccessToken
的权限,则不会说 publish_actions
已被拒绝。我认为这是因为 FBSDKAccessToken 被缓存了。由于我没有在文档中看到需要更新它,所以我认为我错过了一些东西或者只是做错了一些事情。所以我想知道是否有人遇到过这个问题并解决了它。
我用来撤销权限的代码如下:
request = FBSDKGraphRequest.alloc.initWithGraphPath("me/permissions/publish_actions",
parameters: {"fields" => ""},
tokenString: FBSDKAccessToken.currentAccessToken.tokenString,
version: nil,
HTTPMethod: "DELETE")
connection = FBSDKGraphRequestConnection.new
connection.addRequest(request, completionHandler: lambda {|connection, result, error|
if !error && result["success"] == true
# Revoking the permission worked
else
# Things went wrong
end
})
connection.start
最佳答案
我明白了这一点。我以为 FBSDKAccessToken
的 refreshCurrentAccessToken
触发了另一次重新身份验证,但事实并非如此。因此,只需在撤销权限后调用该方法即可刷新权限状态。就像文档所说的那样!这是我的完整方法:
request = FBSDKGraphRequest.alloc.initWithGraphPath("me/permissions/publish_actions",
parameters: {"fields" => ""},
tokenString: FBSDKAccessToken.currentAccessToken.tokenString,
version: nil,
HTTPMethod: "DELETE")
connection = FBSDKGraphRequestConnection.new
connection.addRequest(request, completionHandler: lambda {|connection, result, error|
if !error && result["success"] == true
# if revoke is successful, refresh permissions cache so
# FBSDKAccessToken no longer says publish_actions is enabled
FBSDKAccessToken.refreshCurrentAccessToken(lambda {|connection, result, error|
# FBSDKAccessToken permission state is up to date
alertTitle = "Permission successfully revoked";
alertText = "This app will no longer post to Facebook on your behalf."
})
else
alert("There was an error", error.description)
end
})
connection.start
关于facebook - 撤销 Facebook iOS SDK v4.x 中的权限不更新 currentAccessToken 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32170426/