可以';t向玩家发布高分';Facebook上的时间线


Can't publish a high score to player's timeline on Facebook

我正在开发一款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"answers"publish_actions"权限。

这是成功的工作,响应变量输出1。我可以使用Facebook图表API资源管理器看到发布的分数,所以我认为一切都很顺利。

问题是,我在脸书上的任何地方都看不到所谓的发布用户故事。在阅读文档时,我觉得用户故事必须在保存分数时自动发布。举个例子,看看这里或这里。

有人已经解决了这个问题吗?你看到我可能遗漏的东西了吗?你能告诉我解决这个问题的正确方向吗?

如有任何帮助,我们将不胜感激。

您编写

在阅读文档时,我觉得用户故事必须在保存分数时自动发布。

分数不会自动公布。它们只在特定条件下发布,即当用户:

  • 获得新的高分("高分故事"(
  • 传递另一个朋友的分数("传递故事"(

在你的代码中,你每次都会发布1500分。在你第一次发布它之后,当你再次重复发布它进行测试时,你的发布请求将成功,但分数不会再次发布,因为它不是新高。

来源:
Facebook开发者:游戏教程
Facebook开发者博客:游戏更新:扩大分数和成就的分发

试着看看这个

https://github.com/fbsamples/CriticalMass/tree/master/web/criticalmass

希望将是一个有用的

您可以通过向具有publish_stream权限的APP_ID/feed(而不是profile_ID/posts(发出HTTP post请求,在应用程序的配置文件页面上创建帖子。

更多详细信息:TechNew.在中

如果您的问题是"当我成功地将分数发布到API时,它不一定会在新闻推送或时间轴上创建故事",这不是问题-这就是分数API的工作方式。

分数是一个轻量级的共享选项,并不总是单独显示-我很少在Facebook上看到"用户获得分数X"的故事,但经常看到"X在Z中击败Y的分数"answers"X获得新的高分"-用户个人资料上还有一个时间线单元,显示游戏活动的摘要,分数数据也显示在那里。

当用户获得新的高分时,只需继续向/[user]/scores发布,并让Facebook负责分发

我最近读到FB已经停止允许Api发布时间表。它仍然会出现在新闻推送中,但不再出现在他们的墙上。

我想我已经为您找到了问题所在。

https://developers.facebook.com/docs/opengraphprotocol/#types

参见声明:

文章或视频类型的页面没有发布权限,也不会出现在用户的个人资料中,因为它们不是真实世界的对象。