2015-08-15 82 views
1

在我的應用程序中,我遇到了一些問題。我希望有人能幫我解決這個問題。 故事是,當用戶使用他的Facebook帳戶登錄我的應用程序時,我正在使用他的Facebook登錄信息在我的數據庫上創建一個帳戶。我可以撤銷facebook iOS sdk的public_profile權限嗎?

現在,當用戶從我的應用程序(最終數據庫)中刪除他的帳戶時,他的帳戶仍然列在facebook用戶名單中,該用戶使用facebook登錄安裝了我的應用程序。 所以我希望用戶的帳戶從facebook上刪除,當他從我的數據庫中刪除帳戶。 來解決這個問題,我搜索了一下,發現我可以讓用戶從Facebook的iOS sdk撤銷權限。我不知道這是否會解決我的問題,但我想我會試試看。

現在當我撤銷與下面的代碼權限的用戶訪問: - 對public_profile

 [[[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); 
     }]; 

權限訪問是沒有得到撤銷。

甚至有可能刪除此權限?

如果不是,我該如何嘗試解決我從facebook列表中刪除帳戶的基本問題。

回答

2

只要FBSDK圖表可以讓你走,基本上,只需用@「me/permissions」替換@「me/permissions/public_profile」就可以了。

[[[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

那就是:

撤消登錄

您也可以讓人們徹底解除授權的應用程序,或撤銷 登錄,通過調用該圖形API端點:

DELETE/{用戶ID} /權限

此請求必須使用有效的用戶訪問令牌或當前應用程序的應用程序訪問令牌。如果請求成功,您的 應用程序將收到true的響應。如果通話成功,該人的任何用戶訪問令牌都將失效,他們將不得不 再次登錄。由於您要取消授權您的應用,因此他們也必須授予您應用的訪問權限,就好像他們第一次登錄 一樣。