我刚刚开始为我的游戏实施 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 ) ) )
我的应用程序也正确配置为游戏。
非常感谢任何帮助!
干杯