2

Facebook ウォール (ストリーム) に似たものを作成して、自分のサイトに配置しています。このコンポーネントは、特定のページのウォールからすべての投稿を読み取り、グラフ API を介して表示します。また、ユーザーが「壁」に表示された投稿に「いいね」できるようにしたいと考えています。

これまでのところ、グラフ API を使用して投稿の JSON リストを取得するスクリプトと、post_id クエリ文字列パラメーターで ID が送信された投稿を LIKE できる PHP ファイルもあり、これは機能します。LIKE が送信されていることがわかります。

この PHP ファイルを呼び出すには、jQuery ajax を使用します。

 function do_likes(post_id) {
    $.ajax({
        type: "POST",
        url:"http://www.p-art.co.il/facebook_test/action.php?post_id=" + post_id
    });

Firebug はエラーを表示しませんが、一方で、LIKE は投稿されません。数時間検索してきましたが、FB.api 呼び出しを機能させるために PHP ファイルを呼び出す正しい方法が見つかりません。

前もって感謝します。-エラド

4

2 に答える 2

0

action.php ファイルのソース コードを見ずに判断するのは難しいですが、AJAX 経由で呼び出されているため、ユーザー アクセス トークンが正しく取得されていないと推測されます。

あなたのaction.phpソースをどこかに投稿できれば、私はもう少し助けることができるはずです

于 2011-09-05T18:34:27.423 に答える
0

HTTP POST では、データは通常、enctypeが formatに設定されたフォーム入力から送信されapplication/x-www-form-urlencodedます。したがって、AJAX POST では、通常、クエリ文字列パラメーターとしてではなく、この形式でデータを送信します。これは、通常、HTTP GET 要求でデータを送信する方法であり、上記のデータを送信する方法です。

コードを次のように変更した場合

 function do_likes(post_id) {
    $.ajax({
        type: "POST",
        url:"http://www.p-art.co.il/facebook_test/action.php",
        data : { post_id : post_id }
    });
 }

期待どおりに動作するはずです (私は PHP に詳しくありませんが、投稿先の URL はデータのapplication/x-www-form-urlencoded形式を想定していると思います)。を使用しjQuery.ajax()て、サーバーに送信するキーと値のペアにデータ オブジェクトを設定すると、使用enctypeしている HTTP 要求の種類に基づいて、jQuery が適切な値を提供します (enctype必要に応じて、ただし、通常はこれは必須ではなく、ほとんどの場合、デフォルトが必要になります)。

また、AJAX ポストが正常に完了した後にコールバック関数が呼び出されるように設定することもできます。これを行うsuccessには、呼び出しに渡されるオブジェクトにプロパティを追加し$.ajax()ます。

于 2011-02-20T13:36:01.627 に答える