Javascript Facebook apprequest未发送给Facebook用户

Javascript Facebook apprequest未发送给Facebook用户,javascript,facebook,Javascript,Facebook,我正在开发一个与facebook集成的web应用程序,并使用“请求”对话框邀请新用户。因此,我的应用程序的用户可以点击一个按钮,向他的一些facebook好友发送一个apprequest,这些好友还不是用户 exports = fm.namespace(this,'bla','facebook') exports['init'] = function(){ window.fbAsyncInit = function() { if (undefined !=RAILS_ENV['fa

我正在开发一个与facebook集成的web应用程序,并使用“请求”对话框邀请新用户。因此,我的应用程序的用户可以点击一个按钮,向他的一些facebook好友发送一个apprequest,这些好友还不是用户

exports = fm.namespace(this,'bla','facebook')

exports['init'] = function(){
  window.fbAsyncInit = function() {
    if (undefined !=RAILS_ENV['facebook_app_id'])
    {FB.init({
               appId      : RAILS_ENV['facebook_app_id'], // App ID
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      oauth      : true, // enable OAuth 2.0
      xfbml      : true  // parse XFBML
             });}
  };

  // Load the SDK Asynchronously
  (function(d){
    var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
    js = d.createElement('script'); js.id = id; js.async = true;
    js.src = "//connect.facebook.net/en_US/all.js";
    d.getElementsByTagName('head')[0].appendChild(js);
  }(document));
}
exports['sendRequestToOneRecipient']= function (uid) {
  FB.ui({method: 'apprequests',
    message: "bla bla",
    to: uid 
  }, requestCallback);

  function requestCallback(response) {
    if (response && response.to) {
      console.log("Message was sended"); 
    } else {
      console.log("Message was not sended.");
    }
  }
}
据我所知,它不需要任何权限,因为这是用户的显式操作。 当用户点击按钮时,facebook窗口出现,一切正常。回调正在发回目标用户的appId和userid,但该消息从未在facebook目标用户帐户中通知

控制台上没有javascript错误


同样地,我也在facebook好友的墙上发帖,它可以正常工作,没有任何问题。相同的代码,但不是“apprequest”,而是“feed”

来解决这个问题。我刚刚将我的应用程序标记为facebook应用程序,并添加了一个画布安全url,因此当用户收到我的apprequest时,它可以重定向到一个有效的站点。我一添加url,用户就会收到所有通知

现在的问题是,我必须创建一个特定的页面作为iframe,因为我的网站看起来不像iframe。我还需要一个ssl证书,因为画布url必须是https。如果有人知道解决方法,请告诉我


感谢您的anwsers

将以下内容放入模板文件中:

if (top.location != self.location)
{
    top.location = self.location
}

如果您所在的主网站位置与您的网站位置不一致,它会将您重定向到您的网站。

一切似乎都是正确的。。。是否有任何错误显示??或者只是尝试向测试帐户发送apprequest,并检查该请求是否通过graph api explorer到达测试帐户-您的查询应该非常感谢您的回答。我已经检查过你寄给我的工具了,有人在那里。我没有使用测试帐户。我正在发送到我的另一个facebook帐户。也许这就是问题所在?工具{“id”:“315836123333964_100003158789166”,“应用程序”:{“name”:“XXX_test”,“canvas_name”:“XXX”,“namespace”:“XXX”,“id”:“161947XXX94867”},“to”:{“name”:“Juan Lab”,“id”:“10000315333016”},“from”:{“name”:“Miguel Martin”,“id”:“138397622”},“message”:“嘿,看看!:)”,“created_time”:“…”},我不知道那些画布和命名空间字段是什么。也许我在facebook应用程序上还有一些需要配置的东西??在facebook开发者上配置我的facebook应用程序时,我有指向的url站点以及指向localhost的域。我不知道这种配置是否不能正常工作。你可以使用任何facebook帐户。。这里看起来也不错。。是否有其他用户(您向其发送的)收到通知,或者如果该用户已使用相同的应用程序,请检查左侧导航中应用程序名称附近的任何更新!