6

私のiPhoneアプリでは、ユーザーがFacebookでリンクを共有できるようにしたいと考えています。

彼らが「共有」をクリックすると、次のコードを使用して新しいSDK 3.1を使用してFacebookにログインしFBRequestConnection、完了ハンドラーで使用します(単純publish_action)。

[FBSession openActiveSessionWithPublishPermissions:@[@"publish_actions"] defaultAudience:FBSessionDefaultAudienceFriends allowLoginUI:true completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {

    // Now call FBRequestConnection to post in the stream

}];

ユーザーがFacebookアプリをインストールすると、ログインをアプリに委任するだけです。ただし、そうでない場合は、WebViewでログインページが開きます。

iOS 5では、MobileSafariが開きます。

ここに画像の説明を入力してください

私の問題はiOS6にありますが、同じフローが得られますが、代わりにモーダルポップアップが表示されます(アプリの上にあります)。

ここに画像の説明を入力してください

ポップアップに2つの問題があります。

1.閉じる

キャンセルまたは却下することはできません。比較すると、SDKのHelloFacebookSampleアプリには同じポップアップがありますが、閉じるためのクロスボタンがあります。

ここに画像の説明を入力してください

注:raviのおかげで解決されましたが、「近い」画像を含むFacebookリソースバンドルがありませんでした。

2.権限を受け入れる

ポップアップの2番目のステップ(上の画面を参照)で、[ OK ]を押しても何も起こりません。「X」を押すと、エラーで完了ハンドラーが呼び出されます。これはすばらしいことですが、 Okayでは何も起こりません。これは、SDK 3.1を使用してFacebookにログインする正しい方法ですか?ポップアップに具体的に反応するためのコールバックがありませんか?

さらにいくつかの説明:

これは、Facebookアプリがインストールされておらず、FacebookアカウントがiOS設定で構成されていない場合に、 iOS6でのみ発生します。

ありがとう!

4

2 に答える 2

7

私の評判は50未満なのでコメントできません。そのため、私の観察結果を答えとして指摘しようとしています。

iOS6でFacebooksdk3.1を使用しているときに、この問題にも気づきました。私の場合、古いスタイルのFacebookオブジェクトの作成を使用してそれを呼び出し[facebook authorize:permissions]ていますが、常に「」を使用するようにソースコードを変更しFBSessionLoginBehaviorForcingWebViewて、ログインが常にアプリ内Webログインを介して行われるようにしました。

私の場合、FBUserSettingsViewResources.bundleとFacebookSDKResources.bundleが見つからなかったため、クロスボタンが表示されませんでした(ただし、その場所をタップしてコールバックを取得することはできました- (void)fbDidNotLogin:(BOOL)cancelled{)。

于 2012-10-10T22:03:29.530 に答える
0

私もこの問題に遭遇しました、そしてそれは既知のバグであるように見えます:

https://developers.facebook.com/bugs/539702426044893?browse=search_507daefc9af416244781488

私はまだ問題を解決していませんが、私にとってはシミュレーターでのみ発生しているようです。デバイスにインストールすると、アプリは常にsafariからログインするようです

編集:それで、もう少し掘り下げた後、私はこのスタックオーバーフロースレッドに出くわしました: FBConnectログイン、Webビューと共有しますか?

私たちが見ているダイアログはuiWebViewであり、アプリがサファリでダイアログを開くことができない場合のフォールバックであることに気づきました。シミュレーターをリセットすることで問題を回避することができました。これにより、基本的にCookieがクリーンアップされます。スクリーンショットから、あなたもシミュレーターで作業していると思います。同じ結果が得られるのであれば、シミュレーターをリセットするのだろうか?

メニューからiOSシミュレーター->コンテンツと設定をリセット...

于 2012-10-16T19:20:12.970 に答える