2012-03-28 16 views
0

私はFacebook APIをIOSに私のアプリでFacebookに私のアプリからのリンクを共有するために含んでいます。私のアプリから「共有」をクリックすると、自分のデバイスに既にFacebookにログインしているときにリンクが共有されます。そうでなければ、ログインするように頼んでいます。私がログインすると、ウィンドウは閉じられ、そのリンクは共有されません。リンクを共有するには、もう一度[共有]をクリックする必要があります。ログインした後に自動的に共有する必要があるのは何ですか。 Plsヘルプ。IOSのFacebook API

+0

それは後にアプリを再起動しました。ログイン? – peterept

+1

facebookの部分のコードを投稿してください – Hiren

+0

[Facebookのドキュメント](http://developers.facebook.com/docs/mobile/ios/build/#implementsso)の「アプリケーションの委任のヘッダーファイルを変更してください:ステップ2」でしたか? – peterept

答えて

1

iOS(https://developers.facebook.com/docs/mobile/ios/build/)用Facebook SDKを使用しましたか?私は丁寧にその指示に従いました。それは最初の試みで私にとってうまくいったのです。

[self authorizeWithFBAppAuth:YES safariAuth:YES]; 

[self authorizeWithFBAppAuth:YES safariAuth:NO]; 

で:私のための唯一のトリックは、交換することにより、人々がFacebookアプリを持っていなかったときにアプリが認証用のSafariを起動していないことを確認するために多くの議論ソリューションでしたFacebook.hの (void)authorize:(NSArray *)permissionsメソッド。しかし、それ以外にも、私は上記のWebサイトの指示に従っており、それは私のためにシームレスに機能しました。

これで問題が解決しない場合は、何か起こっていることを診断するためにコードを投稿することができます。問題(コードがない場合)は少し曖昧です。

1

facebook APIの統合に関する疑問がある場合は、私の質問をご覧ください。

Facebook API dialog page showing error in second time and after that

このコードを試してみてください。

-(void)buttonPressed:(id)sender{ 
facebook = [[Facebook alloc] initWithAppId:@"YOUR_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"]; 
     } 
if (![facebook isSessionValid]) { 
    [facebook authorize:nil]; 
}else{ 
[self postWall]; 
} 
// Pre 4.2 support 
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { 
    return [facebook handleOpenURL:url]; 
} 
- (void)fbDidLogin { 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"]; 
    [defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"]; 
    [defaults synchronize]; 
    [self postWall]; 
} 
-(void)postWall{ 

    NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
          @"https://developers.facebook.com/docs/reference/dialogs/",@"link", 
            @"http://fbrell.com/f8.jpg",@"picture", 
            @"Facebook Dialogs",@"name", 
            @"Reference Documentation",@"caption", 
            @"Using Dialogs to interact with users.",@"description", 
            @"Facebook Dialogs are so easy!",@"message", 
            nil]; 

    [[self facebook] dialog:@"feed" andParams:params andDelegate:self]; 

} 
+0

実際これは私の場合ではありません。 – Bharathi

+0

うん、私は知っている。 FacebookのHackbookサンプルAppからコードをコピー&ペーストしてください。 –

+0

はい。そして、私はその問題を今修正しました。 – Bharathi

1

あなたのアプリがサインインした後、再起動してアプリではない場合(ブラウザからまたはユーザーがFacebookアプリをインストールしている場合)、あなたが持っていますあなたのFBのApp Idは(あなたのアプリケーションが起動されますどのように)あなたのInfo.plist

に追加されていない、ここでdocumentationセクションに行く参照してくださいアプリプロパティリストファイルを変更

... Create a new row named URL types with a single item, URL Schemes, containing a single value, fbYOUR_APP_ID (the literal characters fb followed by your app ID). The following shows exactly how the row should appear in the .plist file...

例:

URLタイプ[0] .URLスキーム[0] .fb1234(ここで、あなたのFacebookアプリIDが1234である)

関連する問題