2011-06-28 10 views
4

私は、提供されたFBドキュメントの助けを借りてFacebook iOS SDKを自分のプロジェクトに実装することができました。iOS SDKのリンクを投稿してサムネイルを表示

私のアプリのFB統合は非常にシンプルです:ユーザーが提供したコメントでFB壁へのリンクを投稿できるFacebook共有ボタン。地上波や地面を壊すことはありません。

しかし、もう一歩を進めたいと思います。リンク用に表示するサムネイル(自分の画像URL)はありませんが、サムネイルがFacebookによって自動的に選択されるようにしたいと思います。

ウェブブラウザのFacebookと同様、CNN.comからのリンクを共有する場合、Facebookは自動的に目的のページのサムネイルを選択して共有し、サムネイルはありません "。

iOSのダイアログからリンクを共有すると、サムネイルが自動的に選択されます(おそらく、共有しようとしているリンクから生成されたもの、つまりFBがページの画像を取得するだけです)。

これは可能ですか?ここでも、私は画像URLを持たないので、以下の「添付ファイル」NSDictionaryに提供された画像URLを持つ「画像」を表示したくありません。私はちょうどハイパーリンクを表示し、コメントを付けてユーザーの壁にFBをリンクさせ、FBにサムネイル画像を提供させたい(ウェブブラウザから投稿した場合と同じように)。

基本的にスタックオーバーフローからのコードは次のとおりです。これに

SBJSON *jsonWriter = [[SBJSON new] autorelease]; 

NSDictionary* actionLinks = [NSArray arrayWithObjects:[NSDictionary  
dictionaryWithObjectsAndKeys: @"Always Running", @"text", @"http://itsti.me/", @"href", 
nil], nil]; 

NSString *actionLinksStr = [jsonWriter stringWithObject:actionLinks]; 
NSDictionary* attachment = [NSDictionary dictionaryWithObjectsAndKeys: 
          @"a long run", @"name", 
          @"The Facebook Running app", @"caption", 
          @"it is fun", @"description", 
          @"http://itsti.me/", @"href", nil]; 

NSString *attachmentStr = [jsonWriter stringWithObject:attachment]; 
NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
          @"Share on Facebook", @"user_message_prompt", 
          actionLinksStr, @"action_links", 
          attachmentStr, @"attachment", 
          nil]; 

[_facebook dialog:@"stream.publish" andParams:params andDelegate:self]; 

答えて

1

異なるアプローチがダイアログを使用するのではなく、グラフAPIを呼び出すことであろう。したがって、HTTP POSTをhttps://graph.facebook.com/me/feedに設定し、メッセージとリンクのパラメータを指定すると、画像はFacebookによって自動的に選択されます。 https://developers.facebook.com/docs/reference/api/user/#linksを参照してください。

ユーザーは、メッセージを入力するようにUIを生成する必要があります。それがあなたのために働くことができるなら、これは行く方法です。

0

写真を投稿する必要はありません。また、Facebookがやっていることは、Open Graphタグ(この目的のためだけにWeb文書の冒頭にメタタグ)をつけることです。あなたは単にリンクとメッセージを掲示できるだけでなく、それは "lint" - メタタグを読んで、そのWebページの画像、要約などを投稿します。

共有ダイアログの代わりにグラフを開くグラフを使用してみてください。それはあなたが望むものの多くを行います。http://developers.facebook.com/docs/opengraph/

関連する問題