5

iOS 6 で Facebook 用の新しい組み込み共有「シート」をテストしようとしていますが、サンプル コードを実行してもシートが表示されません。代わりに、最初に投稿する内容を表示せずにステータスを投稿します。また、Facebook はユーザーの口に言葉を入れることを許可していないと思いましたか? コンソールに次のエラーが出力されます: HelloFacebookSample Error: HTTP status code: 400

XCode 4.5 と iOS シミュレーター 6.0 と Facebook SDK 3.1 があります。

私はこれに従っています: http://developers.facebook.com/docs/getting-started/facebook-sdk-for-ios/3.1/

4

3 に答える 3

10

デバイス/シミュレーターで Facebook アカウントを設定しましたか ([設定] -> [Facebook] で)。

ネイティブ シート ダイアログは、アプリが iOS 6 で実行されており、ユーザーが iOS 6 の Facebook アカウントで認証されている場合にのみ表示されます。それ以外の場合、ハンドラーはそのエラーを報告し、presentShareDialogModallyFrom"NO" を返します。また、FBNativeDialogResult resultハンドラ内の は と等しくなりFBNativeDialogResultErrorます。

于 2012-10-01T21:26:23.103 に答える
2

非推奨のメソッド(つまり、新しいopenActiveSessionWithReadPermissions / openActiveSessionWithWritePermissionsの代わりにopenActiveSessionWithPermissions)を使用してセッションを開いていないことを確認してください。そうしないと、Facebook SDKがネイティブのFacebook統合(つまり、ネイティブダイアログ)を使用しません。

于 2012-11-01T10:32:03.913 に答える
2

必要なフレームワークの一部が不足しています:

AdSupport.framework

Account.framework

Social.framework

BOOL displayedNativeDialog =
[FBNativeDialogs
 presentShareDialogModallyFrom:self
 initialText:self.shareText
 image:nil
 url:nil
 handler:^(FBNativeDialogResult result, NSError *error) {
     if (error) {
         /* handle failure */
         NSLog(@"error:%@, %@", error, [error localizedDescription]);
     } else {
         if (result == FBNativeDialogResultSucceeded) {
             /* handle success */
             NSLog(@"handle success");
         } else {
             /* handle user cancel */
             NSLog(@"user cancel");
         }
     }
 }];
if (!displayedNativeDialog) {
    /* handle fallback to native dialog  */
}
于 2012-09-26T11:16:32.380 に答える