簡體   English   中英

在Facebook SDK 3.0 iOS中閱讀和發布權限

[英]read and publish permission in facebook sdk 3.0 iOS

在最后一個SDK中,讀取和發布權限是分開的。 因此,在我的代碼中,每當用戶登錄時,我都會使用以下代碼:

[FBSession openActiveSessionWithReadPermissions:nil
                                       allowLoginUI:YES
                                  completionHandler:
     ^(FBSession *session,
       FBSessionState state, NSError *error) {
         [self sessionStateChanged:session state:state error:error];
     }];

我在facebook開發人員中看到,當我要發布時,我應該要求發布權限,如下所示:

// can include any of the "publish" or "manage" permissions
NSArray *permissions = 
    [NSArray arrayWithObjects:@"publish_actions", nil];

[[FBSession activeSession] reauthorizeWithPublishPermissions:permissions
                           defaultAudience:FBSessionDefaultAudienceFriends
        completionHandler:^(FBSession *session, NSError *error) {
         /* handle success + failure in block */
         }];

由於這是我使用Facebook集成的第一個應用程序,因此我想問幾件事:

1)這些會話可以同時打開嗎? 我只會在用戶想要發布時才請求發布權限,但是我應該在其他會話中執行其他操作嗎? 喜歡先關閉它,然后再重新打開它,否則我不必擔心嗎?

2)例如,如果我有一個postToFriends按鈕,那么使它工作的偽代碼就是這樣,對嗎?

- (IBAction)postToFriendaction:(id)sender {
    if (!FBSession.activeSession.isOpen) {
        /* code from the above for enabling publish permissions*/

    }

否則我應該將!FBSession.activeSession.isOpen更改為其他內容,因為沒有用戶僅以讀取權限登錄,因此他永遠不會輸入if子句。 你能幫助我嗎?

  1. 您所指的兩個會話實際上是同一會話(這是在調用openActiveSession ...之后靜態可用的“活動”會話)。 因此,您無需在其他會話中做任何事情。

  2. 您應該查看SDK附帶的Scrumptious或Hello Facebook示例應用程序。 他們倆都提供了有關如何發布(在請求發布權限時)的示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM