0

誰かが私を正しい方向に向けることができることを願っています。

最終的に承認され、現在アプリでアクティブになっているグラフを開くアクションがあります。アプリ内から OG アクションを使用して誰が投稿を公開したかを追跡する方法はありますか?

アクションに使用しているコードは次のとおりです。

<script type="text/javascript">
  function postEndorse()
  {
      FB.api(
        '/me/namespace:endorse',
        'post',
        { photo: '<?php the_permalink(); ?>' },
        function(response) {
           if (!response || response.error) {
              alert('Error Occurred' + response + " " + response.error);
           } else {
              alert('Thank you!');
           }
        });
  }
  </script>

ユーザーがログインするときに、publish_actions パーミッションをリクエストしています。

ありがとう

4

2 に答える 2

1

上記の JavaScript コードの応答には、アクションの ID が含まれています。

{
  id: “{action-instance-id}”
}

データベースなどを介してアクションを保存する必要があります。それを取得したら、それに対して電話をかけることができます

/action-instance-id?fields=from.fields(id)

次のような応答が得られます

{
  "from": {
    "id": "{user-id}"
  }, 
  "id": "{action-instance-id}"
}

このデータを格納するには多くの方法がありますが、その 1 つに AJAX から PHP/MySQL への保存があります。
それを読んでみることをお勧めします。以下はテストされていません。データを送信する方法のアイデアを提供するだけです。疑似コードと考えてください

jQuery を<head>

<script src="jquery.js"></script>

idユーザーの を送信します。

<script type="text/javascript">
  function postEndorse()
  {
      FB.api(
        '/me/namespace:endorse',
        'post',
        { photo: '<?php the_permalink(); ?>' },
        function(response) {
           if (!response || response.error) {
              alert('Error Occurred' + response + " " + response.error);
           } else {
              FB.api(
                response.id + "?fields=from.fields(id)",
                 function(resp) {
                     if (!resp || resp.error) {
                        alert('Error Occurred' + resp + " " + resp.error);
                      } else {
                        $.ajax({
                           type: "POST",
                           url: "fbdata.php",
                           data: { id: resp.from.id, actionid: resp.id }
                        }).done(function( msg ) {
                           alert( "Data Saved: " + msg );
                        });
                     }
              });
           }
        });
  }
  </script>

次に、fbdata.phpで次のようにします

<?php

include("database.inc.php");
mysql_connect($server,$username,$password);
@mysql_select_db($database) or die( "Unable to select database"); 

$id = mysql_real_escape_string($_POST['id']);
$actionid = mysql_real_escape_string($_POST['actionid']);

$database_entry = "INSERT INTO Actions (Id, Action) VALUES ('$id', '$actionid') ;
mysql_query($database_ntry) or die(mysql_error());


mysql_close();
?>

読んでおきたい参考書

于 2012-10-12T16:44:10.637 に答える
0

/me/namespace:endorseに変更するとどうなりますか /users facebook id/namespace:endorseその後、その人のFacebook IDを保存し、それを使用してそれらを追跡できます。

于 2012-10-12T16:04:00.170 に答える