2012-09-17 1 views
6

私はちょうどiOS用の新しいFacebook 3.0 SDKで私のアプリを更新しました。それ以前は、FBSessionDelegateとFBRequestDelegateを利用したSDKを使用していました。そのSDKには、私たちはapplicationDidFinishLaunchingにこのコードを配置していた。しかし今、新しい3.0 SDKで、私は、我々がしなければならないすべては「その後、フレームワーク、およびリソースバンドルをインポートしていることを聞いてい'FBSession:いいえAppIDを提供

facebook = [[Facebook alloc] initWithAppId:FB_APP_ID andDelegate:self]; 

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
if ([defaults objectForKey:@"FBAccessTokenKey"] 
    && [defaults objectForKey:@"FBExpirationDateKey"]) { 
    facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"]; 
    facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"]; 
} 

私はこれをやったので、「の.plist *バンドルにFacebookAppID idという名前を追加しますが、私はそれにFBSessionを持つ任意のコードを呼び出すときに、私はこのエラーを取得しています:

'FBSession: No AppID provided; either pass an AppID to init, or add a string valued key with the appropriate id named FacebookAppID to the bundle *.plist' 

私が間違ってやって何ができますか?

答えて

3

@Kwame私は同じ問題に直面しました、セッションオブジェクトにはアプリケーションIDがありません。このために、FacebookAppIDという名前のinfo.plistにキーを追加し、FacebookのiOSアプリに提供されたアプリIDで適切な値を設定することができます。既にこれを行っている場合は、- (id)initWithAppID:(NSString*)appID permissions:(NSArray*)permissions urlSchemeSuffix:(NSString*)urlSchemeSuffix tokenCacheStrategy:(FBSessionTokenCachingStrategy*)tokenCachingStrategy;メソッドで適切な値を設定して、プログラムでプログラムIDを設定することができます。またinfo.plistのapp idの値をチェックしてください。お役に立てれば。

+0

ありがとうございます。 FacebookのiOS SDKのドキュメントでは、FacebookAppIDのinfo.plistを設定するだけでいいようです。彼らはそれを行うこれらのさまざまな方法のすべてを伝えることを気にしません。 – Kwame

5

私はまだこれが起こっている理由はわからないんだけど、私の回避策はFBSessionオブジェクトがAPP_IDを持っているかどうかを確認することだったとされていない場合は、手動で設定する:

if (![FBSession defaultAppID]) { 
    [FBSession setDefaultAppID:FB_APP_ID]; 
} 

・ホープこれは誰かに役立ちます!

+0

これは新しいFacebookのSDKで廃止されました。あなたは新しい方法について考えていますか? –

13

plistファイルに「FacebookAppID」エントリがあれば十分です。

しかし、私はドキュメンテーションのWebサイトから "FacebookAppID"文字列をXcodeのplistファイルにコピーした後も同じ問題がありました。 plistファイルから "FacebookAppID"エントリを削除し、実際にと入力してに再入力したら、それは機能しました!

"FacebookAppID"という文字列をHTMLファイルからplistファイルにコピー/ペーストするときに、いくつかの目に見えないマークアップもコピーされるか、文字エンコーディングが乱れてしまいます。

+2

ああ...クレイジー。これは私の年齢がわかりましたが、この答えは実際に問題を解決しました。ありがとう! – Buzzrick

+0

絶対に狂っている、これは動作します。私はplistファイルがどのようにキャッシュされ更新されているかと関係があると思います。 – Eugene

2

クイック検索を使用して「plist」を検索し、間違ったplistファイルにApp IDを追加していることに気付かない可能性があります。 Google Maps SDKのようなフレームワークを組み込んだ場合は、独自のplistファイルがあります。

5

私の場合、私は愚かにFacebookAppIdを小文字の 'd'でタイプしました。誰かが同じ問題を抱えている場合に備えてそれを出してください。

6

ヘッドアップ用。私は今日この問題を抱えていましたが、結局のところ、単にの間違った.plistファイルにエントリを置くだけであることに気がつきました。 プロジェクトファイル(左下)をフィルタリングすると、.plistと入力すると、2つのファイルが表示されることがあります。 1つはテスト 'で、もう1つは実際にセットアップする必要があるものです。 幸運を祈る!ただ、以前の回答に加えて

+0

+1私はどれくらいの厚さですか? – Damo

-1

:あなたは間違って *の.plistファイルにFacebookAppIDを追加したことに気づいて、あなたはまだ同じエラーを持っている場合でも、再度、をご確認ください。おそらく、あなたはそれをに置き換えました別のが間違っています* .plist

+0

これは以前の回答 –

+0

@Félixはいのコメントに属していますが、私は自分のplistsで添付されたライブラリがほとんどない場合、特に2回間違いを許す可能性があることを意味しました。だからちょうど非常に注意深く、非常に一般的で非常に愚かなバグが必要です。 – slxl

+0

それでコメントに入れてください:)コメントは正確にそれらの精度のために存在し、 "あなたは注意深くする必要があります"というヒントがあります。彼らが役に立つと思ったら他の人があなたのコメントに投票することができます。非常に良いコメントのバッジもあります:) –

関連する問題