我可以撤销 facebook iOS sdk 的 public_profile 权限吗?
Can i revoke public_profile permission from facebook iOS sdk?
在我的应用程序中,我 运行 遇到了一些问题。我希望有人能帮我解决这个问题。
所以故事是,当用户使用他的 Facebook 帐户登录我的应用程序时,我正在使用他的 Facebook 登录信息在我的数据库中创建一个帐户。
现在当用户从我的应用程序(最终从数据库)中删除他的帐户时,他的帐户仍然列在 facebook 的使用 facebook 登录安装我的应用程序的用户列表中。
因此,当他从我的数据库中删除帐户时,我也希望用户的帐户也从 facebook 中删除。
为了解决这个问题,我搜索并发现我可以让用户从 facebook iOS sdk 撤销权限。我不知道这是否能解决我的问题,但我想我会试一试。
现在,当我使用以下代码撤销用户访问权限时:-
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me/permissions/public_profile"
parameters:nil
HTTPMethod:@"DELETE"]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
NSLog(@"DELETE-public_profile == %@",result);
}];
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me/permissions/email"
parameters:nil
HTTPMethod:@"DELETE"]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
NSLog(@"DELETE-Email == %@",result);
}];
public_profile 的访问权限未被撤销。
甚至可以删除此权限吗?
如果不是,那么我应该如何尝试解决从 Facebook 列表中删除帐户的基本问题。
就 FBSDK 图而言,基本上,只需将 @"me/permissions/public_profile" 替换为 @"me/permissions" 即可。
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me/permissions" parameters:nil
HTTPMethod:@"DELETE"] startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
// ...
}];
这将删除所有权限,并应完全撤销访问权限,并将用户与应用程序分离
此外,在他们的网站上使用 FB 图 API 时是否尝试查看调用此删除的效果?:
https://developers.facebook.com/docs/facebook-login/permissions/v2.4
即:
Revoking Login
You can also let people completely de-authorize an app, or revoke
login, by making a call to this Graph API endpoint:
DELETE /{user-id}/permissions
This request must be made with a valid user access token or an app
access token for the current app. If the request is successful, your
app receives a response of true. If the call is successful, any user
access token for the person will be invalidated and they will have to
log in again. Because you're de-authorizing your app, they will also
have to grant access to your app as if they were logging in for the
first time.
在我的应用程序中,我 运行 遇到了一些问题。我希望有人能帮我解决这个问题。 所以故事是,当用户使用他的 Facebook 帐户登录我的应用程序时,我正在使用他的 Facebook 登录信息在我的数据库中创建一个帐户。
现在当用户从我的应用程序(最终从数据库)中删除他的帐户时,他的帐户仍然列在 facebook 的使用 facebook 登录安装我的应用程序的用户列表中。 因此,当他从我的数据库中删除帐户时,我也希望用户的帐户也从 facebook 中删除。 为了解决这个问题,我搜索并发现我可以让用户从 facebook iOS sdk 撤销权限。我不知道这是否能解决我的问题,但我想我会试一试。
现在,当我使用以下代码撤销用户访问权限时:-
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me/permissions/public_profile"
parameters:nil
HTTPMethod:@"DELETE"]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
NSLog(@"DELETE-public_profile == %@",result);
}];
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me/permissions/email"
parameters:nil
HTTPMethod:@"DELETE"]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
NSLog(@"DELETE-Email == %@",result);
}];
public_profile 的访问权限未被撤销。
甚至可以删除此权限吗?
如果不是,那么我应该如何尝试解决从 Facebook 列表中删除帐户的基本问题。
就 FBSDK 图而言,基本上,只需将 @"me/permissions/public_profile" 替换为 @"me/permissions" 即可。
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me/permissions" parameters:nil
HTTPMethod:@"DELETE"] startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
// ...
}];
这将删除所有权限,并应完全撤销访问权限,并将用户与应用程序分离
此外,在他们的网站上使用 FB 图 API 时是否尝试查看调用此删除的效果?:
https://developers.facebook.com/docs/facebook-login/permissions/v2.4
即:
Revoking Login
You can also let people completely de-authorize an app, or revoke login, by making a call to this Graph API endpoint:
DELETE /{user-id}/permissions
This request must be made with a valid user access token or an app access token for the current app. If the request is successful, your app receives a response of true. If the call is successful, any user access token for the person will be invalidated and they will have to log in again. Because you're de-authorizing your app, they will also have to grant access to your app as if they were logging in for the first time.