2010-04-26 83 views
8

我想嘗試新的Facebook身份驗證系統,我無法讓登錄工作。Facebook連接'下一個'錯誤

我收到以下錯誤信息:


API錯誤代碼:100

API錯誤說明:無效的參數

錯誤消息:未來不屬於應用程序。


正在發送給Facebook的URL爲:

http://www.facebook.com/connect/uiserver.php?app_id=444444444444444&next=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%23%3F%3D%26cb%3Df357eceb0361a8a%26origin%3Dhttp%253A%252F%252Fwww.mysite.com%252Ff38fea4f9ea573%26relation%3Dopener%26transport%3Dpostmessage%26frame%3Df23b800f8a78%26result%3DxxRESULTTOKENxx&display=popup&channel=http%3A%2F%2Fwww.mysite.com%2Ffbtester.php&cancel=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%23%3F%3D%26cb%3Df6095a98598be8%26origin%3Dhttp%253A%252F%252Fwww.mysite.com%252Ff38fea4f9ea573%26relation%3Dopener%26transport%3Dpostmessage%26frame%3Df23b800f8a78%26result%3DxxRESULTTOKENxx&locale=en_US&return_session=1&session_version=3&fbconnect=1&canvas=0&legacy_return=1&method=permissions.request

注意, '下一步' 在url變量是:

下一= HTTP%3A%2F% 2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%23%3F%3D%26CB%3Df357eceb0361a8a%26origin%3Dhttp%253A%252F%252Fwww.mysite.com%252Ff38fea4f9ea573%26relation%3Dopener%26transport%3Dpostmessage%26frame% 3Df23b800f8a78%26result%3DxxRESULTTOKENxx


任何想法可能會出錯?所有我所做的就是複製和Facebook的網站上貼上Facebook登錄演示代碼:


<?php 
define('FACEBOOK_APP_ID', 'your application id'); 
define('FACEBOOK_SECRET', 'your application secret'); 

function get_facebook_cookie($app_id, $application_secret) { 
    $args = array(); 
    parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args); 
    ksort($args); 
    $payload = ''; 
    foreach ($args as $key => $value) { 
    if ($key != 'sig') { 
     $payload .= $key . '=' . $value; 
    } 
    } 
    if (md5($payload . $application_secret) != $args['sig']) { 
    return null; 
    } 
    return $args; 
} 

$cookie = get_facebook_cookie(FACEBOOK_APP_ID, FACEBOOK_SECRET); 

?> 


<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:fb="http://www.facebook.com/2008/fbml"> 
    <body> 
    <?php if ($cookie) { ?> 
     Your user ID is <?= $cookie['uid'] ?> 
    <?php } else { ?> 
     <fb:login-button></fb:login-button> 
    <?php } ?> 

    <div id="fb-root"></div> 
    <script src="http://connect.facebook.net/en_US/all.js"></script> 
    <script> 
     FB.init({appId: '<?= FACEBOOK_APP_ID ?>', status: true, 
       cookie: true, xfbml: true}); 
     FB.Event.subscribe('auth.login', function(response) { 
     window.location.reload(); 
     }); 
    </script> 
    </body> 
</html> 

感謝您的幫助!

+0

請在您的問題中使用正確的格式,這是完全不可讀的。 – Rabbott 2010-04-26 03:05:13

+0

對不起,我一直有一些麻煩得到它格式正確.. – Mark 2010-04-27 02:01:01

回答

1

我對Facebook API知之甚少,但我知道您必須用您的應用程序ID和應用程序密碼實際替換文本your application idyour application secret。 :)

+1

嗨尼克, 感謝您的答覆。這不是問題 - 我已經完成了。我只是認爲在這段代碼中顯示我的應用程序ID和應用程序密鑰並不合適。 雖然我很欣賞幫助! – Mark 2010-04-27 02:00:20

5

我得到相同的錯誤,但我使用的是Rails,問題是連接URL沒有更新。我的本地應用程序在端口3000上運行,並且連接URL指向端口80.

看看是否可以更改它。

  1. 轉到http://www.facebook.com/developers
  2. 編輯您是
  3. 工作的應用程序,點擊左側
  4. Connect選項卡驗證是否Connect URL設置正確
+0

對於我而言,我在Facebook上留下了'www',但我的主機自動轉發到www ...所以這些網址不同 – 2010-10-16 07:24:03

0

如果連接的網址是正確的,它仍然不起作用,請轉到您的應用設置,指定一個正確的基本域。爲了測試,你可以使用localhost。如果仍然沒有運氣,去遷移設置,禁用「新數據許可」

+0

Adelein Rodriguez,在您的基本域中,只需指定ddailygirl.com – JiJ 2010-05-03 19:45:20

1

我有同樣的問題,並不能解決它。正如Ji所說,這是基礎領域。我會投票,但我剛加入。 FB設置頁面的要求非常糟糕......我使用了localhost。

我還使用了?nothing = 1的querystring來測試新需求的b/c,它說: 連接url必須指向一個目錄(即,,以「/」結尾或動態頁面(即在某處有一個「?」)。

因此,你不能只是把default.aspx。你必須以斜線結尾或有?是連接一個奇怪的要求

感謝吉!

1

我能得到這個使用這些設置來解決:

基本域: .COM (這也應該解決adelein的問題與多個子域)

連接URL:需要是一個有效的http://或https:// URL,末尾帶有斜槓或URL中的某個地方帶有'?',表示查詢字符串。基本上,Facebook不希望你發送人靜態頁面,不正確處理他們設置的授權,我想。

+0

您在哪裏看到那些設置? – fastmultiplication 2010-09-16 05:27:09

+0

http://www.facebook.com/developers/apps.php 點擊你的應用程序,然後「編輯設置」 點擊「網站」 – jenming 2010-09-22 22:32:59

+0

但是,他們似乎已經改變了他們的設置頁面! 點擊「網站」 - 具有域名。但連接URL似乎已經消失.... – jenming 2010-09-22 22:39:29