我正在开发一个 PHP 游戏,并希望将玩家高分发布到他们自己的 Facebook 墙/时间线。
我已经设置了一个 Facebook 应用程序,我用来发布分数的 PHP 代码是(由 Facebook 本身提供):
<?php
require 'facebook-sdk/facebook.php';
$app_id = MY_APP_ID;
$app_secret = MY_APP_SECRET;
$score = 1500; // this is gonna be passed someway...
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
));
$user = MY_USER_ID; // to be replaced with a call to $facebook->getUser()
$app_access_token = get_app_access_token($app_id, $app_secret);
$facebook->setAccessToken($app_access_token);
$response = $facebook->api('/' . $user . '/scores', 'post', array(
'score' => $score,
));
print($response);
// Helper function to get an APP ACCESS TOKEN
function get_app_access_token($app_id, $app_secret) {
$token_url = 'https://graph.facebook.com/oauth/access_token?'
. 'client_id=' . $app_id
. '&client_secret=' . $app_secret
. '&grant_type=client_credentials';
$token_response =file_get_contents($token_url);
$params = null;
parse_str($token_response, $params);
return $params['access_token'];
}
?>
当然有一个我省略的登录和安装部分,要求用户登录并授予应用程序“ publish_stream
”和“ publish_actions
”权限。
这很成功,响应变量输出 1。我可以使用 Facebook Graph API Explorer 查看发布的分数,所以我认为一切都运行良好且顺利。
问题是我无法在 Facebook 上的任何地方看到所谓发布的用户故事。阅读文档,在我看来,用户故事必须在保存分数时自动发布。例如,看看这里或这里。
有没有人已经解决了这个问题?你看到我可能遗漏的东西了吗?你能指出我解决这个问题的正确方向吗?
任何帮助将不胜感激。