facebook - 撤销 Facebook iOS SDK v4.x 中的权限不更新 currentAccessToken 权限

标签 facebook facebook-graph-api facebook-ios-sdk

在我的应用中,我想使用 Facebook 的 iOS SDK v4.x 撤销 Facebook 的 publish_actions 权限。 (我在 4.5.1 版本上使用 FBSDKCoreKitFBSDKLoginKitFBSDKShareKit 作为 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

最佳答案

我明白了这一点。我以为 FBSDKAccessTokenrefreshCurrentAccessToken 触发了另一次重新身份验证,但事实并非如此。因此,只需在撤销权限后调用该方法即可刷新权限状态。就像文档所说的那样!这是我的完整方法:

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/

相关文章:

java - 什么是 Android key 哈希?

facebook - 关于如何从与会者和机器人之间的对话中获取此 ID 的任何想法?

android - 如何在android中使用 Fresco 设置渐进式jpeg

facebook-graph-api - 我可以获得 Soundcloud 用户的收听历史记录吗?

facebook - 使用 news.reads Open Graph 操作时出错

facebook - Laravel 5.1 - 通过 Socialite 进行 Facebook 身份验证

objective-c - Cocoapods 使用_frameworks!进口问题

ios - Facebook Cocoapods 集成

ios - Facebook App邀请iOS集成错误

html - 在 Cloudfront 的页面上托管 Facebook iframe