簡體   English   中英

在FB請求響應字典中獲取空值

[英]Getting null values in FB request response dictionary

我正在嘗試使用以下代碼在登錄的Facebook帳戶中獲取專輯的所有列表...但是不幸的是,我根本無法獲得任何列表,結果是dictionary..is

{
    data =     (
    );
}

任何想法我在下面的代碼中做錯了什么...

 FBRequest* friendsRequest = [FBRequest requestForGraphPath:@"me/albums"];

   [friendsRequest startWithCompletionHandler: ^(FBRequestConnection*connection,NSDictionary* result,NSError *error) {
                                                          if(!error)

                                                       {
                                                              NSLog(@"%@",result);
                                                              //NSArray *albums;


                                                          }

這是完整的方法

- (BOOL)retrieveFacebookPhotosWithCompletionBlock:(void (^)(NSArray *, NSError *))completionBlock
{
    //FBSession *activeFBSession=[FBSession activeSession];

    //activeFBSession.state;


    [FBSession openActiveSessionWithReadPermissions:nil
                                       allowLoginUI:YES
                                  completionHandler:^(FBSession *session,
                                                      FBSessionState state,
                                                      NSError *error) {
                                      if (error) {

                                          NSLog(@"Error");
                                      } else if (session.isOpen) {

                                          [[FBRequest requestForMe] startWithCompletionHandler: ^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) {
                                              if (error) {
                                                  //error
                                                  completionBlock(nil, error);
                                              }else{
                                                  FBRequest* friendsRequest = [FBRequest requestForGraphPath:@"me/albums"];

                                                  [friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,NSDictionary* result,NSError *error) {
                                                      if(error)
                                                          completionBlock(nil, error);
                                                      else
                                                      {
                                                          NSLog(@"%@",result);
                                                          //NSArray *albums;


                                                      }
                                                  }];
                                              }
                                          }];

                                      }
                                  }];



        return YES;
}

您需要獲得“ user_photos”的許可才能獲取相冊。

當我在沒有權限的情況下嘗試它時,我收到的回復與您相同。 使用圖譜API資源管理器

當我獲得具有權限的新access_token時,我從api中收到了正確的響應。

要訪問照片,您需要在打開Facebook user_photos權限。嘗試更改代碼,如下所示。

[FBSession openActiveSessionWithReadPermissions:
[NSArray arrayWithObjects:@"user_photos",nil] allowLoginUI:YES
completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
                                         //YOUR CODE
                                           }];

是的,這是因為您具有授予的權限。如上所述,您必須授予通過鍵user_photos訪問照片的權限。 您可以參考facebook SDk提供的示例項目以獲取更多密鑰和每個產品提供的特定權限。也可以參考facebook開發者頁面。

暫無
暫無

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

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