使用AJAX/jQuery发布到Facebook墙/提要

使用AJAX/jQuery发布到Facebook墙/提要,jquery,ajax,facebook,facebook-graph-api,Jquery,Ajax,Facebook,Facebook Graph Api,在这件事上把我的头发拔出来 我正在编写一个连接Facebook的web应用程序,它最终会将一些任意信息发布到整个过程中选择的朋友的墙上 我现在处于最后阶段,希望张贴到墙上会很简单,但我花了太长时间试图解决这个问题,所以我希望有人能帮助我 我尝试使用ajax发布如下内容: $.ajax({ type: 'POST', url: "https://graph.facebook.com/bbeckford/feed", data: {message: wallMessage,

在这件事上把我的头发拔出来

我正在编写一个连接Facebook的web应用程序,它最终会将一些任意信息发布到整个过程中选择的朋友的墙上

我现在处于最后阶段,希望张贴到墙上会很简单,但我花了太长时间试图解决这个问题,所以我希望有人能帮助我

我尝试使用ajax发布如下内容:

$.ajax({
    type: 'POST',
    url: "https://graph.facebook.com/bbeckford/feed",
    data: {message: wallMessage, target_id: friendID, access_token: "<?= $cookie['access_token'] ?>", format: "json"},
    success: function(data) { alert(data); },
    dataType: "JSON"
});
$.ajax({
键入:“POST”,
url:“https://graph.facebook.com/bbeckford/feed",
数据:{message:wallMessage,target_id:friendID,access_令牌:“”,格式:“json”},
成功:函数(数据){警报(数据);},
数据类型:“JSON”
});
但我一直收到这样的错误:“XMLHttpRequest无法加载。访问控制不允许使用Origin允许Origin。”

我做过搜索,其中一个建议是制作一个php代理,这是一个可行的选择吗?我该怎么做呢

我完全错了吗

任何帮助都将不胜感激, 谢谢 -本

编辑 我想在后台这样做,ie用户选择了10个朋友作为例子,然后在提交应用程序时将循环通过每个朋友,并在他们的墙上张贴一些东西。这可能吗? 谢谢

编辑2
下一页底部的测试控制台正是我想要做的,但是没有源代码

无法将ajax请求发送到另一个域


你想干什么就干什么。

在这里使用javaScript SDK

步骤1

首先,您的应用程序应该获得在用户的墙上或用户的朋友墙上张贴的权限

来自Facebook的示例代码:

发布流需要发布到用户或用户的好友墙上

需要编辑的行:{perms:'read\u stream,publish\u stream,offline\u access'})

要了解有关其他权限的详细信息,请执行以下操作:

步骤2

摘自facebook JavaScript SDK页面并进行了调整

需要编辑或添加的行:target\u id:“输入您的好友id-多个,用逗号分隔,


:)

我不确定是从哪里听到的,但是:

jQuery.getJSON("https://graph.facebook.com/"+therequestid+"/?callback=?&access_token="+access_token,{},
           function(data, textStatus, jqXHR){
                          //bla-bla
           }
       );

在需要添加“?callback=?”内容的地方应该可以工作。我不知道为什么会这样。但是,只要它起作用,我会很高兴的。

您可能需要在验证用户时设置作用域(如果您还没有这样做的话)


如果您使用WAMS进行身份验证,请查看此博客以设置范围

我已经查看了这些内容,但找不到合适的示例,我可以使用该方法异步发布到墙上吗?@bbeckford:是的,您可以异步发布。这里有一个例子:谢谢,我试过了,但我仍然不认为这是我想要的。我编辑了我的问题,以便更好地解释。@bbeckford:你可以通过JS SDK调用REST方法:谢谢,我最终从中找到了答案,但sashtinathan发布了完整的解决方案,因此我接受了这一点,即为了人们搜索,它依赖于JSONP回调,这是使用AJAX解决同源浏览器安全限制的常用方法。也就是说,这只适用于返回JSON的GET请求。
   FB.ui(
   {
     method: 'stream.publish',
     message: 'getting educated about Facebook Connect',
     attachment: {
       name: 'Connect',
       caption: 'The Facebook Connect JavaScript SDK',
       description: (
         'A small JavaScript library that allows you to harness ' +
         'the power of Facebook, bringing the user\'s identity, ' +
         'social graph and distribution power to your site.'
       ),
       href: 'http://github.com/facebook/connect-js'
     },
     target_id: 'ENTER YOU FRIENDS IDS - more than one, seperate by commas',
     action_links: [
       { text: 'Code', href: 'http://github.com/facebook/connect-js' }
     ],
     user_message_prompt: 'Share your thoughts about Connect'
   },
   function(response) {
     if (response && response.post_id) {
       alert('Post was published.');
     } else {
       alert('Post was not published.');
     }
   }

 );
jQuery.getJSON("https://graph.facebook.com/"+therequestid+"/?callback=?&access_token="+access_token,{},
           function(data, textStatus, jqXHR){
                          //bla-bla
           }
       );