Facebook graph api facebook在我的应用程序';s墙不是用户';长城

Facebook graph api facebook在我的应用程序';s墙不是用户';长城,facebook-graph-api,Facebook Graph Api,我正在尝试在我的网站上提供一个设施,允许用户为他们的预订创建facebook活动 现在,我正在执行正确的流程: 1) 首先从用户处获得授权 2) 请求具有步骤1中返回的“代码”的访问令牌 3) 正在使用access_令牌创建事件 string facebookCreateUri = string.Format("https://graph.facebook.com/{0}/events", loggedInMember.FacebookUID); var formData =

我正在尝试在我的网站上提供一个设施,允许用户为他们的预订创建facebook活动

现在,我正在执行正确的流程:

1) 首先从用户处获得授权

2) 请求具有步骤1中返回的“代码”的访问令牌

3) 正在使用access_令牌创建事件

   string facebookCreateUri = string.Format("https://graph.facebook.com/{0}/events", loggedInMember.FacebookUID);

  var formData = new HttpUrlEncodedForm() 
  {
   {"access_token", accessToken},
   {"owner", loggedInMember.FacebookUID},
   {"description", "nice event that should be on the owners wall"},
   {"name", "event on the users wall"},
   {"start_time", "1272718027"},
   {"end_time", "1272718027"},
   {"location", "rochester"},
   {"privacy","OPEN"}       
  };

  HttpContent content = HttpContent.Create(formData);
  HttpClient client = new HttpClient();

  var response = client.Post(facebookCreateUri, "application/x-www-form-urlencoded", content);

但是,该事件发布在我的应用程序的墙上,而不是用户的墙上。它不应该与authentication/access_令牌元素有任何关系,因为我使用相同的过程发布到用户的墙上。(http://developers.facebook.com/docs/reference/api/status/)这很好用。

我不知道;在你的授权请求中看不到任何许可。。基本权限不足以进行发布。 我用过:

这是在画布应用程序的上下文中。其中MY_APP_URL是来自facebook的应用程序URL: http://apps.facebook.com/MY_APP_NAME_OR_ID

请参阅事件的扩展权限并检查中的事件页面


[编辑]-我回来了,抱歉,现在我做了一个测试,它确实对我有效,但我只在我的应用程序的墙上张贴了一部分;即使我提供了“user_events”权限,也会出现以下错误:

在用户墙上发布时,远程服务器返回错误:(403)禁止
话虽如此,我也同意这个问题。

我带着一个解决方案回来了,在使用Facebook SDK开发了一周的许多功能后,它终于起作用了

protected void onPostEvent(object sender, EventArgs e)
    {
        if (CanvasAuthorizer.Authorize())
        {
            var fb = new FacebookWebClient(CanvasAuthorizer.FacebookWebRequest);

            dynamic parameters = new ExpandoObject();
            parameters.description = txtEvDett.Text;
            parameters.name = txtEvName.Text;
            parameters.start_time = DateTime.Now.ToString("yyyyMMdd");
            parameters.end_time = DateTime.Now.AddDays(1).ToString("yyyyMMdd");
            parameters.access_token = CanvasAuthorizer.FacebookWebRequest.AccessToken;

            dynamic eventDet = fb.Post("me/events", parameters);

            litEvent.Text = String.Format("You have created the event with ID: {0}", eventDet.id);
            lnkEvent.Visible = true;
            lnkEvent.NavigateUrl = String.Format("http://www.facebook.com/event.php?eid={0}", eventDet.id);
        }
    }
对于事件,您必须请求创建\u事件权限

您应该使用/me/events发布您的活动

我从Codeplex使用Facebook的C#SDK——dld的最新版本(2011年8月-v5.2.1)

祝你好运

protected void onPostEvent(object sender, EventArgs e)
    {
        if (CanvasAuthorizer.Authorize())
        {
            var fb = new FacebookWebClient(CanvasAuthorizer.FacebookWebRequest);

            dynamic parameters = new ExpandoObject();
            parameters.description = txtEvDett.Text;
            parameters.name = txtEvName.Text;
            parameters.start_time = DateTime.Now.ToString("yyyyMMdd");
            parameters.end_time = DateTime.Now.AddDays(1).ToString("yyyyMMdd");
            parameters.access_token = CanvasAuthorizer.FacebookWebRequest.AccessToken;

            dynamic eventDet = fb.Post("me/events", parameters);

            litEvent.Text = String.Format("You have created the event with ID: {0}", eventDet.id);
            lnkEvent.Visible = true;
            lnkEvent.NavigateUrl = String.Format("http://www.facebook.com/event.php?eid={0}", eventDet.id);
        }
    }