Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试在画布应用程序中发布Facebook分数时出现访问令牌错误_Facebook_Facebook C# Sdk - Fatal编程技术网

尝试在画布应用程序中发布Facebook分数时出现访问令牌错误

尝试在画布应用程序中发布Facebook分数时出现访问令牌错误,facebook,facebook-c#-sdk,Facebook,Facebook C# Sdk,我正在尝试将我的canvas应用程序中的评分系统与Facebook的整合,该系统使用MVC 3和5.2.1.0 Facebook SDK实现 我的游戏控制器的简化hello world变体如下所示: public class MyController : Controller { [CanvasAuthorize("publish_action" /*And some others*/)] public ActionResult Index() { var fb = new

我正在尝试将我的canvas应用程序中的评分系统与Facebook的整合,该系统使用MVC 3和5.2.1.0 Facebook SDK实现

我的游戏控制器的简化hello world变体如下所示:

public class MyController : Controller
{
  [CanvasAuthorize("publish_action" /*And some others*/)]
  public ActionResult Index()
  {
    var fb = new FacebookWebClient();
    var scores = fb.Get("/me/scores"); // Works (I think)
    fb.Post("/me/scores", new { score = 10 }); // Throws an exception
  }
}
要求得分的呼声似乎给了我一些理智的东西;写入分数值的调用抛出“(OAutheException)(#15)必须使用app access_令牌调用此方法。”

我错过了什么?在我的web.config中正确设置了应用程序id和密码-例如,我可以成功地在实际应用程序的其他部分发布应用程序apprequest,但在这个精简的测试副本中没有显示。使用调试器四处搜索,我发现FacebookWebClient对象包含一个非空的访问令牌字段,它包含在fb.Post最终使用的URI中

Facebook的分数页面(比约恩链接到该页面)只提到了发布操作,但我尝试过包括其他听起来相关的权限,例如离线访问和用户游戏活动,但没有效果


我假设CanvasAuthorization属性正确登录-它似乎确实让我发送了一个应用程序apprequest,因此看起来它做的事情是正确的…

您的应用程序需要写入用户配置文件的权限。您可以使用Graph API向用户请求所需的权限。如果获得授权,Facebook将向您提供所需的访问令牌,然后您可以在向Facebook的请求中使用该令牌。这种做法确保您只执行用户允许的操作


编辑:查看文档后:是否确实具有此处所述的用户所需权限?

请查看此链接。你需要获得一个facebook应用程序。使用apid和SecretId,您可以使用下面链接中的信息发布。关键是将&scope=管理页面、脱机访问、发布流添加到url

像这样: “{0}&client\u secret={1}&grant\u type=client\u credentials&scope=manage\u页面、脱机访问、发布\u流”