2011-10-03 40 views
1

我已經爲Facebook apprequests(的oauth2,圖表)如何在接受我們的應用程序發送的應用程序請求後重定向到我的應用程序頁面?

一個問題,我發了應用程序的請求給我的朋友B. 乙登錄到Facebook和發現我們的應用程序列表請求。 乙點擊接受按鈕

乙重定向到Facebook的畫布頁面。我想重新引導到我們的應用程序,而不是Facebook的畫布,這是可行的嗎?

感謝

+0

這是可行的,只需在用戶從請求着陸時執行從畫布到應用配置文件頁面的重定向。你知道如何處理/刪除你的畫布頁面中的請求嗎?你使用哪種語言? –

回答

1

你可以把網址中的數據PARAM

看到這裏http://developers.facebook.com/docs/reference/dialogs/requests/下性能在底部。

數據可選的,額外的數據,你可以通過跟蹤。這將作爲創建的請求對象的一部分被存儲在 中。

這會傳回給您,您可以使用javascript將location.href傳遞給數據中的url。

----------這裏是我已經在來自Facebook過去

var thisimg = 'AN_IMG'; 
    var thisurl = 'A_URL'; 
    window.sendrequest = function(){ 
      FB.ui({ method: 'apprequests', 
      title: 'A request.', 
     message: 'Rate Me! Request from: ' +thisname+' ', 
     data: ''+thisimg+' '+thisurl+' ', 
     filters: ['all'], 
     }); 
     } 

----------樣品與數據PARAM添加使用的樣本。

 var thisimg = 'AN_IMG'; 
     var thisurl = 'A_URL'; 
    function sendRequestToManyRecipients() { 
    FB.ui({method: 'apprequests', 
     message: 'My Great Request', 
     data: ''+thisimg+' '+thisurl+' ', 
    }, requestCallback); 
    } 

    function requestCallback(response) { 
    // Handle callback here 
    } 

回調時,你可以做一個window.top.location.href = '';與您在數據中傳遞的網址一致。

注意:請求的默認重定向是畫布,不能更改。用戶登陸畫布後,您將從請求中讀取數據參數並將其重定向到您的外部應用程序。

「我沒有看到任何其他的方式來做到這一點,因爲請求2.0不包括重定向URI的選項。」

+1

對我不起作用 – dexterdeng

+1

dex你可以發佈你使用的完整代碼嗎? –

+1

Shawn,謝謝,我的問題已修復。 再次感謝你 – dexterdeng

1

正如你已經包含的JavaScript的Facebook SDK在你的應用程序,你已經writen此代碼爲邀請朋友爲您的應用腳本

FB.ui({方法: 'apprequests',REDIRECT_URI:「APP網址', message:'My Message'});

這將重定向到程序URL重定向沒有向Facebook畫布URL.So即使你使用的數據參數,如

FB.ui({方法,這將不起作用:「apprequests」,數據:「APP網址', message:'My Message'});

寫這個代碼在您的應用程序登陸頁面即在index.php中

$requestid=$_GET[request_ids]; 
if(!empty($requestid)) { 
    echo "<script> window.top.location.href='APP URL'; </script>"; 
} 
0

這是一個老問題,但現在有一個簡單的解決方案。

在「Facebook畫布」下的Facebook應用程序設置中,有一個標題爲「移動網站URL」的字段。當用戶嘗試從移動設備打開您的畫布應用程序時,他將被重定向到該URL。

該URL應該指向您應該根據瀏覽器用戶代理重定向到App Store或Play商店(或即將推出的頁面)的頁面。

相關問題