2009-07-01 88 views
0

我剛開始使用Facebook Connect for iPhone。我已經能夠創建一個登錄/註銷按鈕,啓動和恢復會話,並更新Facebook的狀態。iPhone + Facebook API:如何檢測何時需要「擴展權限」?

但是有一件事我找不出當我需要請求擴展權限(如更新用戶狀態所需的)時,該如何處理。一旦爲我的應用程序完成了一次,似乎在服務器端就會記住這一點,並且我不再需要用對話框來對用戶進行缺陷。如果我在不需要時彈出對話框,它會短暫顯示,然後消失,這會產生惱人的閃爍效果。

所以我的問題是:我怎麼能檢測到用戶(會話?)已經授予這種權限?

回答

4

Facebook連接對他的API一個方法來顯示這樣的信息:facebook.Users.hasAppPermission

詳情請參見文檔:http://wiki.developers.facebook.com/index.php/Users.hasAppPermission

要使用FBRequest方法使用調用此API驗證碼:

NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys: 
      @"status_update" , @"ext_perm", 
      @"1234" , @"uid", 
      nil]; 

[[FBRequest requestWithDelegate:self] call:@"facebook.users.hasAppPermission" 
             params:params]; 

你只需要通過ext_permuid參數,所有剩下的Facebook Connect會自動解決。

現在要接收結果,你需要實現一個回調方法:

- (void)request:(FBRequest*)request didLoad:(id)result { 

    NSString* StringResult = result; 

    NSLog(@"Query returned %@", StringResult); 
} 

結果將是一個字符串值:「1」,如果你的應用程序它的授權或「0」如果不是。

0

我們開發了一個簡化原始Facebook Connect的類,創建一個持久保留在所有應用程序對象上的單個會話對象。還爲您提供執行簡單任務的簡單方法,如登錄,註銷和發佈提要。

一個例子是實現簡單的登錄,只需調用登錄方法的會話對象上:

[fbsession login]; 

此代碼將打開一個Facebook連接對話框,詢問用戶的登錄名和密碼。如果登錄成功,關於此會話的所有信息都將被存儲,並且在您的應用程序的任何位置都可輕鬆訪問。

您可以在此下載並查看所有文檔:http://code.google.com/p/fbconnectsession/wiki/About