2011-11-23 281 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

相關問題