2011-11-23 280 views
0

我有一个Facebook应用程序,是一个粉丝页面内的选项卡。Facebook应用程序请求

我已经使用已签名的请求来查看用户是否喜欢该页面并基于该页面显示内容。

我还设法在提示用户登录并授予对应用程序的访问权限后使用获取Facebook用户标识。

我无法做到的是获得'apprequests'功能。我已经试了几种方法:

仅供参考 - 我使用这个版本的jQuery:https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js

<div id="fb-root"></div> 
<script src="http://connect.facebook.net/en_US/all.js"></script> 
<form id="form1" runat="server"> 

<script type="text/javascript"> 

    window.fbAsyncInit = function() { 
     FB.init({ appId: 'myappid', xfbml: true, cookie: true, oauth: true }); 
    }; 

    function inviteFriends() { 
     FB.ui({ 
      method: 'apprequests', 
      message: 'Enter this cool competition http://www.facebook.com/pages/My-Test-Fan-Page/204123762998981?sk=app_308637695832192', 
      redirect_uri: 'http://www.facebook.com/pages/My-Test-Fan-Page/204123762998981?sk=app_308637695832192', 
      display: 'iframe' 
     }, 
      function (response) { 
       console.log(response); 
      } 
     ); 
    } 

....

我这样做的时候,有2个问题(我认为它们可能是相关的) 1.请求未发送给选定的用户 2.响应的功能未被调用。 当我调用FB.ui方法时,我可以选择用户,但是当我这样做时,对话框会显示一个加载屏幕并关闭。

我发现奇怪的一件事是,当我没有包含'redirect_uri'参数(从我所看到的不应该是必要的),我得到一个错误,说应用程序没有拥有回调url 。

我自己也尝试做这种方式

var message = 'Enter this cool competition'; 
       var requestUrl = 'http://www.facebook.com/dialog/apprequests?app_id=308637695832192&redirect_uri=http://localhost:51934/Default.aspx&message=' + message; 
       window.top.location.href = requestUrl; 

这也似乎工作,我可以选择用户和它似乎工作 - 我得到我的[0],来添加用户[1]等查询字符串参数。

有什么我做的这是错的,可能是造成这种情况吗?当我要求用户授权应用程序时,我只是要求标准访问,据我所知,这是所有应该需要的。如果在页面ta内可以做些什么有一些限制,我也会游荡?

任何帮助将不胜感激。

回答

2

我一直在熬夜这个问题,并认为我可能有一个可能的解决方案供您尝试。

对于编号1)在应用程序设置中,我只为页面标签选项设置了url,当我选择了这个应用程序时突然发送了请求并显示。

对于编号2)我有redirect_uri设置和回调函数没有被调用,对话框会关闭。我认为redirect_uri只在显示器弹出时才动作。尝试删除redirect_uri选项和显示选项

顺便说一句,我也得到了关于不拥有重定向uri的错误。我不知道我改变了什么,这意味着我停止了它,但怀疑它是当我将sdk init html移动到正文后面的body标签之后https://developers.facebook.com/docs/reference/javascript/我之前在body标签关闭之前就已经有了它。希望这可以帮助。

+0

#1是我的问题,并修复它!谢谢! – sevenseacat

相关问题