2012-02-15 7 views
0

なぜこのエラーが発生するのか分かりません。 致命的なエラー:未知のOAuthException:現在のユーザーに関する情報を照会するためにアクティブなアクセストークンを使用する必要があります。

私は 、1は通常、このためにアクセストークンを使用する必要があります知っているが、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"; 
    } 
?> 

感謝を事前に!

EDIT:これは認証プロセスなしで実行する必要があります(承認アプリ)。クライアントの要望

+0

こんにちはJoeriが、私は同じ問題を抱えています。現在のロケールにエラーメッセージを表示して、Facebookにログインする必要があることをユーザーに伝えたいとします。あなたはその質問を理解しましたか? Gregoire。 – Gregoire

答えて

0

あなたはhttp://graph.facebook.com/zuckまたはhttp://graph.facebook.com/4またはhttp://graph.facebook.com/cocacolaのようなグラフに基本的な電話をかけることができます呼び出します。

これらのすべての作業。しかし、私はアクセストークンを置いていないことに注意してください。

PHP SDKを使用してコールすると、現在のアクセストークンに追加されます。ウェブサーバーのトラフィック自体をチェックすると、それを見ることができます。

ここにキャッチがあります。サイトとやり取りするユーザーのユーザーID(またはユーザー名)を知るには、ユーザーIDを確認するか、ユーザーID(彼らが知っている可能性は非常に低い)を要求する必要があります。

0

は、あなたが最初の最初のグラフAPIを作るためにauthenticationプロセスを経る必要があります

+0

ああ、そうです、私はクライアントが認証プロセスを望んでいないと言及しませんでした。なぜなら、人々を怖がらせると思うからです。では、認証プロセスを使用せずに可能な方法はありますか? –

+0

手動で確認する以外にも?私はそこにいるとは思わない。私は正しく覚えている場合、あなたのアプリが認証されていない場合は、グラフのAPI呼び出しを行うことはできません。しかし、私は100%確信していないので、私はドキュメンテーションを確認することをお勧めします。 – Darvex

+0

[OK]を、私は答えを見つけた。私はこれのために5時間以上を探していて、突然私はこれを見つけましたhttp://www.devquotes.com/2011/03/20/how-to-create-a-facebook-page-dynamically-translated/ –

0

私は自分の問題の解決策を見つけました。無料のFacebookブックにアクセスして、簡単に 署名付きリクエストを使用できます。私は私のユーザーロケールを得ることができ

$signed_request = $facebook->getSignedRequest(); 
    $locale = $signed_request['user']['locale']; 

の方法は、このページで見つかった:

http://www.devquotes.com/2011/03/20/how-to-create-a-facebook-page-dynamically-translated/

関連する問題