2

iPhoneアプリでFacebook認証を作成しまし た。そのためにこのチュートリアルに従いました。ただし、1行のコードを除いて、つまり

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    [FBSession.activeSession handleDidBecomeActive];
}

これを使用すると、次のエラーが表示されます。

セレクター handleDidBecomeActive を宣言する「FBSession」の可視 @interface がない

しかし、ログインボタンをクリックしても認証は正常に機能します。問題は、認証ウィンドウに「基本情報」が表示されていることです。「あなたに代わって投稿」にもアクセスする必要があります

      My authentication window is             I need to authenticate 
              like this                    like this (as in FB tutorial)

ここに画像の説明を入力ここに画像の説明を入力

エラーを見つけることができません。Facebook のアプリ作成にあるのでしょうか、それとも iPhone コーディングの認証エラーでしょうか。誰かがエラーを受け取った場合は、明確にするのを手伝ってください

4

3 に答える 3

1

テスト プロジェクトを書いていますが、エラー メッセージを繰り返すことはできません。

No visible @interface for 'FBSession' declares the selector handleDidBecomeActive

Facebook SDK 3.1.1 でコンパイルする場合 (テストするのに 3.1 は手元にありません)。handleDidBecomeActiveは 3.1 バージョンの新機能であり、メッセージはコンパイラがセレクターを認識しないことに関連しているため、バージョンに関連するもののようです。

また、あなたの許可の問題について; バージョン 3.1 では権限システムが変更され、読み取り権限と書き込み権限を同時に要求できなくなりました。3.1 移行ドキュメントからの引用;

読み取りと公開のアクセス許可を個別に (そしてその順序で)要求する必要があります。ほとんどの場合、アプリを起動してユーザーが最初にログインするときに、パーソナライゼーション用の読み取りアクセス許可を要求します。その後、必要に応じて、アプリがデータを Facebook に投稿するときに、公開アクセス許可を要求できます。

ログイン時に読み取り許可を要求できますが (これが表示されています)、同時に投稿許可を要求することはできません。SDKが示唆しているように、後でその許可を要求すると、正常に機能するようです。

于 2013-01-01T18:05:38.420 に答える
0

あなたが書いたコードはiOS 6以降でのみ使用しました。このコードを試してください:

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    if ([[[UIDevice currentDevice] systemVersion]integerValue] >= __IPHONE_6_0) {
        [FBSession.activeSession handleDidBecomeActive];
    }

}
于 2013-01-01T15:46:33.550 に答える
0

これは古い投稿であることは知っていますが、同じ問題に遭遇した人に役立つ可能性があるため、ここに解決策を投稿しています。FacebookSDK v3.1 を使用していますが、今日同じ問題が発生しました。これは、Targets Search Paths に古い FacebookSDK v3.0 パスがまだ残っているためです。正しい FacebookSDK パスが Targets Search Paths に入力されていることを確認してください。そうすれば、コンパイラは文句を言いません。

于 2013-02-23T08:04:00.997 に答える