2011-06-23 9 views
3

最新のFacebook C#SDK(執筆時にはv5.0.40)をhttp://facebooksdk.codeplex.com/から使用しています。Facebook C#SDKを使用してページの「好き」のステータスを取得できません

Facebookにテスト用のiFrameアプリケーションを作成し、CSASPNETFacebookAppサンプルを実行して、Facebook内に現在ログインしているユーザーの名前が表示されるようにしました。

私が今したいのは、ユーザーがページを「好き」しているかどうかによって、iFrameに異なるコンテンツを表示することです。しかし、signed_requestにはその情報が含まれていないようです。私がFacebookSignedRequest.csで見ることができるのは、アルゴリズムがAES-256-CBC HMAC-SHA256の場合にのみページ情報を含むペイロードを取得しますが、HMAC-SHA256が返されます。

私は間違っていますか?ページ情報を返すにはどうすればよいですか?それはFacebookの私のアプリの設定や.NETアプリの設定上の問題に問題がありますか?

ありがとうございます。

+0

+1私もこれをやろうとしています。あなたはsigned_requestからこの情報を取得できましたか? – Andy

答えて

0

これを達成するためにFQLを使用することができます。私は、次の文を使用して、これを行っている:私は、彼らが言っていますかどうかを確認するための権限を持っていたように動作する。このためには

var the_query = FB.Data.query("SELECT uid FROM page_fan WHERE page_id = {0} and uid={1}", page_id, user_id);

、私は自分のアプリケーションを「許可」にユーザーに確認する必要がありましたページ。その後、それは結果を確認し、必要な<div>を表示するシンプルなケースだった:

the_query.wait(function (rows) { 
    if (rows.length == 1 && rows[0].uid == user_id) { 
     $("#myLikeContent").show(); 
    } else { 
     $("#myNoLikeContent").show(); 
    } 
}); 
2

ニール・ナイトの答えは技術的に正しいことは、ユーザーがページを気に入っているかどうかをルックアップするためにFQLを使用することができ、それがに助けませんでした正しい道に私を置いてください。しかし、私の問題は実際にはコードではなく設定されたものでした。私が理解できなかったことは、アプリケーションが「ページのコンテキスト」内で実行されている場合にのみ、署名されたリクエストに「好き」の情報を受け取ることです。正しく設定すると、Facebookはあなたのアプリを「許可」する必要のないユーザーの同種のフラグをアプリに渡します。

手順は次のとおりです。

(1)Facebookの

であなたのiframeアプリケーションを作成します(2)アプリの設定でアプリのタブのURLを設定します。これは、親ページがあなたのアプリに行くために左の列にリンクを生成するときに使用するものです。

(3) "App profile page"に行くと、URLは次のようになります。http://www.facebook.com/apps/application.php?id=12345ここで12345はあなたのアプリIDです。

ロゴ画像の左側の列に、「ページに追加」というリンクが必要です。そのリンクをクリックすると、管理者であるページのリストが表示されます。あなたのアプリで好きにしたいページを選択してください。

ページに移動すると、左側の列にアプリへのリンクが表示されます。そのリンクをクリックして、ページIDなどのステータスをアプリケーションに渡すことができるのは、そのときだけです。

これは、同じ問題を抱えている人に役立ちます。

3
var fb = new FacebookClient("access_token"); 

dynamic parameters = new ExpandoObject(); 
parameters.method = "pages.isFan"; 
parameters.page_id = "{you page id}"; 

dynamic result = fb.Get(parameters); 
bool isFan = result == true; 
+0

これは現在動作しています... – DarthVader

関連する問題