2012-02-15 38 views
0

我不知道爲什麼我收到此錯誤: 致命錯誤:未捕獲OAuthException:活動的訪問令牌必須用於查詢當前用戶的信息。

我知道一個通​​常應該使用訪問令牌爲此, 但在Facebook的API,上面清清楚楚地寫着:

*no access_token for publicly available data: uid, name, first_name, middle_name, last_name, sex, locale*

所以他們說你不需要爲區域設置的訪問令牌而這正是我需要。 請把你的時間來閱讀我的代碼:

// create the Facebook Graph SDK object 
require_once('facebook.php'); 
$facebook = new Facebook(array(
    'appId'=>'273312646075066', // replace with your value 
    'secret'=>'7a34df58fad450648249634c81ec17c5' // replace with your value 
     )); 

echo "<body>"; 

    // Show the content for the person who liked the page 
    $user = $facebook->getUser(); 
    $user_profile = $facebook->api('/me'); 

    //setting the language variables 
    $fr = 'fr'; 
    $nl = 'nl'; 

    //setting the right content according to the language 
    if(stristr($user_profile['locale'],$nl)) 
    { 
     $lang = "NL"; 
     $_SESSION['lang']=$lang; 
     include "form.php"; 
    } 
?> 

提前感謝!

編輯:我忘了,這應該是沒有身份驗證過程(在批准程序)。客戶的願望

+0

Joeri您好,我有同樣的問題。我想讓當前的語言環境顯示錯誤消息,通知用戶他必須登錄Facebook。你有沒有想過這個問題?格雷瓜爾。 – Gregoire 2012-04-11 10:10:39

回答

0

可以使基本通話費爲圖形像http://graph.facebook.com/zuckhttp://graph.facebook.com/4http://graph.facebook.com/cocacola

所有這些工作。但是,請注意我沒有穿上任何訪問令牌。

當您使用PHP SDK調用,它附加在當前訪問令牌。檢查Web服務器流量本身,你可以看到它。

所以這裏的漁獲物。要知道用戶與您的網站進行交互的用戶名(或用戶名),您必須對其進行身份驗證或只是詢問他們的用戶ID(他們很可能知道它)。

0

你應該先通過authentication過程首先,爲了使圖形API調用

+0

噢,沒錯,我沒有提到我的客戶不需要認證過程,因爲他認爲這會嚇跑別人。那麼有沒有辦法可以不使用auth過程? – 2012-02-15 13:37:10

+0

除了手動檢查嗎?我不認爲有。如果我沒有記錯,如果您的應用程序未通過身份驗證,則無法進行任何圖形API調用。但我不是100%肯定的,所以我會建議檢查文件。 – Darvex 2012-02-15 13:45:23

+0

好的,我找到了答案。我一直在尋找5個多小時,突然間我發現這個http://www.devquotes.com/2011/03/20/how-to-create-a-facebook-page-dynamically-translated/ – 2012-02-15 13:48:14