2011-01-31 6 views
8

私はボタンのようにFacebookで遊んでいますが、問題が発生しました。私はここでやっているチャリティー活動についてのFacebookページを持っています:外部からFacebookのコンテンツを好きになる方法

http://www.facebook.com/Adam.Holmes.Climbs.Kilimanjaro

私はまた、かなり同じ情報を持っているウェブページを持っています。このウェブページ内には、ボタンのようなフェイスブックがあり、ユーザーはここで見られるようにページを好きになることができます:

http://developers.facebook.com/docs/reference/plugins/like/

私の問題は別個のボタンである。 Facebookのページの中に私はいくつかのユーザーが "好き"とコメントした画像を追加しました。私は今、それぞれの画像のボタンのようなFacebookを追加したいので、イメージはFacebookにあります。私はボタンのような多くの異なるリンクを差し込んだが、どれもうまくいかないようだ。私はページのURLを試した。 b)画像のURL。 c)さまざまなURLを操作するランダムなビットとバット。

私はJavaScriptのソースコードを調べようとしましたが、私の理解にはそれほど複雑すぎます。関数fc_click()は、別の関数を呼び出すボタンから呼び出され、それ以降ずっと失われてしまい、URLがどのようなものであるのか分からないことがわかります。

私の質問は、私はFacebookの外部に好きなボタンを使うことができるように、 "好きな"スクリプトに置かれるURLは何ですか?

これ以上の情報が必要な場合は、そうしてください。

はどうもありがとうございました:)


UPDATE:私がしようとしているすべての異なる組み合わせのか、URLの、まだ運がありません。 「好きな」ボタンの1つのオブジェクトは、グラフ内のオブジェクト、すなわちHere is the object I want to like.ですが、これらのリンクのいずれも機能していません。多分facebookはこれを制限しています。ページのURLを使うのは簡単で、個々の項目ではなくうまく動作します。

タグに配置するリンクが必要であり、お気に入りやコメントの数などを取得できるだけでなく、Facebookの開発者フォーラムhereでもトピックを開始することができます誰も解決策に答えていません。

もう一度おねがいします。


UPDATE 2:私は方法があるのか​​はわからない

としてとしてコードが実際にHTMLでレンダリングされた "マイルズグレー" が指摘外部ページからフォームにアクセスするには、正しいthisリファレンスがないためです。誰でもこれを行うことができるかどうかを明らかにすることができますか?確かにこれができるのであれば、thisへの正しい参照を持つことで、私はコンテンツを外部的に好きになることができます。

+0

OpenGraphを使用していますか? –

+0

いいえ、私はちょうどタグを使用しています。 –

+0

2回目の更新に関して、 'this'は単に' window'オブジェクトです。関連するウィンドウオブジェクトを掴むことができれば、あなたの罰金です。 – Raynos

答えて

1

あなたは何をしたいですか?が可能ですか?迅速な "証拠":

<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script> 
<fb:like href="http://www.facebook.com/platform" show_faces="true" width="450"></fb:like> 

これだけで罰金が、そのグラフAPIの解釈を使用して動作します:

<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script> 
<fb:like href="https://graph.facebook.com/19292868552" show_faces="true" width="450"></fb:like> 

これは動作しません!

私はあなたが使用そのようなへの道を見つけた場合は、EVENので、「回避策/ハック」の検索やFacebookの写真のページを点検し、デバッグしようと気にすべきとは思いません私はFacebookの法的な問題にあなたを導くだろうと確信しています!

これで、ユーザー「が好きなときは、」の写真をあなたのウェブサイトに表示し、「LIKE」ボタンの下にポップアップまたはDIVを表示してFacebookの写真ページをサポートするように促しますそれは(それのように)あまりにも!

これはedge.createイベントを使用して行うことができます。

FB.Event.subscribe('edge.create', function(response) { 
    // Encourage the user to support your cause in Facebook too! 
    $("div_with_a_link_to_the_photo_page_on_facebook").show(); 

    // or using a dialog or whatever effect you like 
    $("#facebook_support").dialog(); 
}); 

PS:私はここに

をjQueryのを使用しています。また、実際にFacebookの「オブジェクト」のような外部アプリケーションと何かを必要とします私の答えのようにhere、しかし私はあなたがそれをしたくないと思う。

<div class="fb-like" data-href="**http://graph.facebook.com/[object_id]**" data-send="false" data-width="270" data-show-faces="false" data-colorscheme="dark" data-font="arial"></div> 

(ちょうどあなた自身のオブジェクトIDに入れて):

1

これは非常に面倒なマッシュアップで、これについては、完璧な解決策ではないことを指摘したいと思います。私はちょっと座って、あなたの頭をFacebook Docsに開いておくことをお勧めします。

hereをご覧ください。ご覧のとおり、FacebookのすべてのオブジェクトはGraph APIの一部です。そのようなものとして、それはそれ自身の一意のIDを持っています。写真ごとに、hereと見ることができ、各写真には独自のIDが付いていることがわかります。

だから、何をする必要がある、その特定のページあなたのWebページがロードされるたびに、その特定アルバムから、その特定写真を呼んで、そのように、あなたはすべての引くことができるようになりますこの写真がFacebookで受け取ったコメントや好きなもの。

これについては、initialize the JavaScript SDKperform an FQL query、具体的にはpictureに行って、データを取得することをお勧めします。

表示中:facebook には外部のWebページに写真を表示するための特別なプラグインがないので、表示部分は微妙な部分です。すべての情報はJSONオブジェクトで受信されます。このオブジェクトは任意の方法で表示できます。経験をより社会的にするために、Graph APIでその写真のIDを持つ各写真のようなボタンを作成することをお勧めします。 Docs are here

+0

私はグラフAPIを使用して問題はありません、私はかなり徹底的に理解しています。私はFacebookから画像を取得していない、それはちょうど同じ画像が起こる。グラフAPIを使用すると、ユーザーは「Connect with facebook」を強制するでしょうが、これは私の目的ではありません。Facebookの他の「like」ページと同様、好きな数だけ好きです。 –

+0

@ Adam-これは当てはまりません。画像に関するデータを照会するには、ユーザーは何も必要ありません。 – t0mgs

+0

しかし、好きな数や実際にグラフのAPIからデータを取得しても、私の ""スクリプトにどのリンクを置く必要があるのか​​分かりません。私は画像のために利用可能なすべてのリンクを試して、それらのすべてが失敗しました。 –

1

私の知る限り、Facebookは何とか写真のIDとアルバムIDでphoto.phpにリンクされている内部スタットカウンターを使用しています...

あなたがソースコードを見ると、あなたが(それを好きに)見ることができます:

<label onclick="this.form.like.click();"><i class="img sp_29yryj sx_182771" title="Like this item"></i></label> 

し、さらに(それが好き人々を表示する)に沿って:

<a href="/browse/?type=likes&amp;id=1516817795900" rel="dialog" ajaxify="/ajax/browser/dialog/?type=likes&amp;id=1516817795900" title="See people who like this item">16 people</a> 

あなたは何とかURLがあなたがソートされなければならない画像IDに基づいているものを作業することができた場合は、TMKそれは思えますs FBは画像のIDを好きにするために何らかの種類のカスタムライブラリを使用しています。

+0

2

<fb:like>では、ページではないコンテンツにFacebookのようなボタンを表示することはできません。これをテストするために、自分の壁に投稿した写真にいくつかのことを試みました。あなたが理解したように、URLのどれも働かない。

しかし、あなたは自分のようなボタンを作ることができます。 Graph APIを使用すると、/me/feedを使って独自のフィードからオブジェクトを取得できます。最も簡単なことは、おそらくフィードからの画像を使用することでしょう。イメージをホストしていれば、フィード上のオブジェクトにマッピングテーブルを戻す必要があります。あなたのフィードの各オブジェクトにはLikeカウンタがあります。

更新

ポストを再読し、ユーザーがログインする必要がありますする必要はありませんように見えます。グラフAPIは、サーバ側から呼び出すことができます。あなたがあなた自身のフィードにアクセスしているとして、あなたは自分自身のフィードにアプリをオフラインの権限を与える必要があり、かつ、現在のユーザーがログインする必要はありません。

アップデート2

それは/POST_ID/likesを表示されます投稿のみで動作する - 私は「アプリはホワイトリストに載っていなければならない

0

のようなプラグインを使用します。私の問題は、ユーザーがアプリケーションにログインしていなくても(単に一般的なfbにログインしているのではない)、オブジェクトをすでに好んだかどうかを検出する方法を見つけ出すことができないということです。

これを行うには、アプリケーションにextended_permissionsが必要です(この場合、read_stream権限が必要です)。いったんそれを持っていれば、fqlを使って同様のテーブルを問い合わせることができます。

関連する問題