1

アプリで Facebook 機能を介して共有を作成しようとしています。

Facebook 開発者サイトのチュートリアルに従って、プロジェクトをセットアップすると、ログインが正常に機能します。

ただし、リクエストをより多くの権限で機能させることはできません。アプリからユーザーに代わって投稿できるようにするには、ユーザーに publish_actions 権限を求める必要があります。

たとえば、次のアクティブなセッションがあります。

2014-06-02 10:44:56.729 facebook[68183:60b] activeSession:、expirationDate: 2014-07-28 14:50:04 +0000、refreshDate: 2014-05-30 11:03:01 +0000、AttendedRefreshDate : 0001-12-30 00:00:00 +0000、権限:( インストール済み、「public_profile」)>

共有しようとする私のコードは次のとおりです。

[FBRequestConnection startWithGraphPath:@"me/permissions"
     completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
          if (!error){
            NSDictionary *permissions= [(NSArray *)[result data] objectAtIndex:0];
            if (![permissions objectForKey:@"publish_actions"]){
              // Permission hasn't been granted, so ask for publish_actions
              [FBSession.activeSession requestNewPublishPermissions:[NSArray arrayWithObject:@"publish_actions"]
                                                                            defaultAudience:FBSessionDefaultAudienceFriends
                                                                          completionHandler:^(FBSession *session, NSError *error) {
                 if (!error) {
                    if ([FBSession.activeSession.permissions indexOfObject:@"publish_actions"] == NSNotFound){
                       // Permission not granted, tell the user we will not share to Facebook
                       NSLog(@"Permission not granted, we will not share to Facebook.");
                 } else {
                      // Permission granted, publish the OG story
                      [self requestWithGraphPath:@"me/feed" andParams:[[NSMutableDictionary alloc] initWithObjectsAndKeys:@"http://www.in.gr",@"url",@"messageTitle",@"Titleos",@"description",@"description", nil] andHttpMethod:@"POST"];
                                                                                  }

                                                                              } else {
                                                                                  // An error occurred, we need to handle the error
                                                                                  // See: https://developers.facebook.com/docs/ios/errors
                                                                                  NSLog(@"Encountered an error requesting permissions: %@", error.description);
                                                                              }
                                                                          }];

                                  } else {
                                      // Permissions present, publish the OG story

                                      [self requestWithGraphPath:@"me/feed" andParams:[[NSMutableDictionary alloc] initWithObjectsAndKeys:@"http://www.in.gr",@"url",@"messageTitle",@"Titleos",@"description",@"description", nil] andHttpMethod:@"POST"];
                 }

            } else {
            // An error occurred, we need to handle the error
            // See: https://developers.facebook.com/docs/ios/errors
            NSLog(@"Encountered an error checking permissions: %@", error.description);
         }
}];

すでにログインしていますが、追加のアクセス許可を要求しようとすると、追加のアクセス許可を承認するように求めるだけでなく、再度ログインするよう求められます。さらに、再度ログインしても、すべての publish_actions 権限が付与されません。

公開許可に必要な要求を正常に行うにはどうすればよいですか?

4

1 に答える 1

1

最新の Facebook SDK (3.1+ だと思います) を使用すると、発行アクションは、レビューおよび送信されたアプリに対してのみ機能することがわかりました。

テストしたい場合は、Facebook ダッシュボードからアプリのテスト バージョンを作成する必要があります。

彼らは今それを少し面倒にしました。Facebook アプリのダッシュボードですべてが正しく設定されていることを確認してください。そうしないと、アプリを介してコンテンツを共有しようとするとエラーが発生します。

于 2014-06-04T11:41:26.643 に答える