2

ゲームに FB 実績を実装し始めたところです。アプリに PHP SDK を使用しています。

PHP SDK クラスをサブクラス化するクラスから次のコードを使用して、実績を正常に登録しました。

$URL = 'apps.facebook.com/<app_name>/ach1.html';
$AppID = $this->getAppId();

$Params = array('achievement' => $URL);

$res = $this->api($AppID.'/achievements', 'POST', $Params);

これが Graph API Explorer を介して作成されたことを確認できます。

{
  "data": [
    {
      "url": "http://apps.facebook.com/<app_name>/ach1.html", 
      "type": "game.achievement", 
      "title": "Tutorial", 
      "image": [
        {
          "url": "<app_img_url>/1-ach.jpg"
        }
      ], 
      "description": "Tutorial Completed", 
      "site_name": "<app_name>", 
      "data": {
        "points": 1
      }, 
      "updated_time": "2012-07-13T16:05:44+0000", 
      "id": "<id>", 
      "application": {
        "id": "<app_id>", 
        "name": "<app_name>", 
        "url": "https://www.facebook.com/apps/application.php?id=<app_id>"
      }, 
      "context": {
        "display_order": 0
      }
    }
  ]
}

ただし、自分で実績を作成しようとすると、false が返されます。

$URL = 'apps.facebook.com/<app_name>/ach1.html';
$UserID = 100000466230867;

$AccessToken = $this->getApplicationAccessToken();

$Params = array('access_token' => $AccessToken,
                'method' => 'post',
                'achievement' => $URL);

$res = $this->api($UserID.'/achievements', 'POST', $Params);

結果は「ブール偽」です。エラー コードは返されません。ここで明らかにまたは根本的に間違ったことをしていますか? 値1と0の「display_order」も提供しようとしました。

publish_actions パーミッションも付与したことを確認できます。

permissions:Array ( [data] => Array ( [0] => Array ( [installed] => 1 [email] => 1 [publish_actions] => 1 [bookmarked] => 1 ) ) ) 

私のアプリはゲームとしても正しく構成されています。

どんな助けでも大歓迎です!!

乾杯

4

1 に答える 1

0
  1. アプリがサンドボックス モードの場合は、削除します。
  2. ユーザーがアプリを承認し、削除していないことを確認します

「false」は通常、「あなたが使用しているアクセス トークンが要求しているデータを表示できない人またはページ」を意味します。これは、ブロックされたユーザー、サンドボックス モードのアプリ、削除されたコンテンツなどで最も頻繁に発生します。この場合、アプリがユーザーを表示/操作できないと思われます (これがアプリ設定インターフェイスまたは API を介して作成されたテスト ユーザーである場合、テスト ユーザーには奇妙なプライバシーの癖があるため、特に可能性が高くなります)

于 2012-07-30T18:47:03.083 に答える