邀请朋友尝试Facebook应用程序不起作用

时间:2014-12-24 21:00:59

标签: javascript facebook facebook-graph-api facebook-javascript-sdk

我有以下js代码,但它不起作用,我尝试了太多但没有成功: •我已经拥有一个非过期的完全访问令牌 •我有所有的权利

<html>
<head>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<title>Invite</title>
</head>
<body>
<A href="#" onMouseOver="return changeImage()" ><img
name="jsbutton" src="http://cdn.property118.com/wp-content/uploads/2014/06              /Invite-      friends-to-read-Property118-.jpeg" width="110" height="28" border="0" 
alt="javascript button"></A> 
<SCRIPT language="JavaScript">
window.fbAsyncInit = function() {
    FB.init({ appId: xxxxxxxx, 
        status: true, 
        cookie: true,
        xfbml: true,
        oauth: true
        version    : 'v2.1'
    });
  };

  (function(d, s, id){
     var js, fjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement(s); js.id = id;
     js.src = "//connect.facebook.net/en_US/sdk.js";
     fjs.parentNode.insertBefore(js, fjs);
   }(document, 'script', 'facebook-jssdk'));

FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
function renderMFS() {
// First get the list of friends for this user with the Graph API
FB.api('/me/invitable_friends?limit=3000&access_token="I already have a non expire full user access token", 
function(response) {
var container = document.getElementById('mfs');
var mfsForm = document.createElement('form');
mfsForm.id = 'mfsForm';

// Iterate through the array of friends object and create a checkbox for each one.
for(var i = 0; i < Math.min(response.data.length, 10); i++) {
 var friendItem = document.createElement('div');
 friendItem.id = 'friend_' + response.data[i].id;
 friendItem.innerHTML = '<input type="checkbox" name="friends" value="'
   + response.data[i].id
   + '" />' + response.data[i].name;
   mfsForm.appendChild(friendItem);
 }
 container.appendChild(mfsForm);

 // Create a button to send the Request(s)
 var sendButton = document.createElement('input');
 sendButton.type = 'button';
 sendButton.value = 'Send Request';
 sendButton.onclick = sendRequest;
 mfsForm.appendChild(sendButton);
 });
 }
 }
 });


</SCRIPT>
<div id="fb-root"></div> 
</body>
</html>

我希望我的代码显示类似Example的内容但是当我点击按钮时没有任何反应。提前谢谢

1 个答案:

答案 0 :(得分:0)

首先,没有非过期的用户访问令牌,扩展用户令牌有效期为60天。但无论如何,您在使用JavaScript SDK时无需担心访问令牌,因为它会为您处理用户令牌。

话虽如此,该代码中存在很多问题:

  • 最大的问题是你没有任何授权程序。使用FB.login授权用户。再一次,不要担心访问令牌。
  • 您正在尝试使用同步和异步方式来包含JavaScript SDK。始终使用异步方式而忘记同步方式。
  • 在使用FB.init初始化JS SDK之前,您正在使用FB.getLoginStatus和FB.api。 FB.getLoginStatus的整个代码块应该在FB.init之后,或者在用户交互(鼠标单击)上调用的函数中。
  • 该链接不起作用。您的代码中没有任何changeImage函数。
  • 在任何地方都没有sendRequest函数,而您正尝试使用该输入按钮调用该函数。

只需打开浏览器控制台,您可能会看到一些错误,指出其中的一些问题。

顺便说一句,这是一篇关于如何正确使用JS SDK的文章:http://www.devils-heaven.com/facebook-javascript-sdk-login/