2012-01-17 25 views
0

私はこのコードに問題があり、どこでも検索しますが、この問題の答えは得られませんでした。 このコードたびに私は自分のアカウントでログインfacebookにログインしてるでも0を返すことがgetUserは常に0を返します

<?php 

     require_once('facebook.php'); 


     $facebook = new Facebook(array(
     'appId' => 'XXXXXXXXXXXXXXX', 
     'secret' => 'XXXXXXXXXXXXXXX', 
     )); 

     $user_id = $facebook->getUser(); 

     echo $user_id; 
    ?> 

私のコードですが、誰かがこの問題を修正するか、間違っているかを説明するために私を助けることができますか?私は、このユーザーがボタンをクリックして、彼はのファンになったときに、ボタンのようにFacebookを利用して追加したい私は登録フォームで、このようなものを作りたいのFacebook-PHP-SDK-v3.1.1-21


を使用しています私のFacebookのファンページ、彼はボタンスクリプトのようなヒットしない場合、これをチェックし、ユーザーがボタンのようなヒットする必要があります前に、そのエラーを出力する必要があります誰かが私にいくつかのヒントやPHPのこれを実現するスクリプトの部分を与えることができますか?

+1

Facebookにログインするだけでは不十分です。あなたのアプリもそうである必要があります。 –

+0

そしてこれをどうするのですか? –

+1

[tのチュートリアル](https://www.google.com/search?q=php+facebook+connect)があります。それらのいくつかを見て、それを撃つ。ご不明な点がございましたら、ご遠慮なく特定の質問に戻ってください。 –

答えて

0

ここにPHP SDKを使用する方法の良い例があります:

https://github.com/facebook/php-sdk/tree/master/examples

<?php 
/** 
* Copyright 2011 Facebook, Inc. 
* 
* Licensed under the Apache License, Version 2.0 (the "License"); you may 
* not use this file except in compliance with the License. You may obtain 
* a copy of the License at 
* 
* http://www.apache.org/licenses/LICENSE-2.0 
* 
* Unless required by applicable law or agreed to in writing, software 
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 
* License for the specific language governing permissions and limitations 
* under the License. 
*/ 

require '../src/facebook.php'; 

// Create our Application instance (replace this with your appId and secret). 
$facebook = new Facebook(array(
    'appId' => 'xxxxxxxxxxxxx', 
    'secret' => 'xxxxxxxxxxxx', 
)); 

// Get User ID 
$user = $facebook->getUser(); 

// We may or may not have this data based on whether the user is logged in. 
// 
// If we have a $user id here, it means we know the user is logged into 
// Facebook, but we don't know if the access token is valid. An access 
// token is invalid if the user logged out of Facebook. 

if ($user) { 
    try { 
    // Proceed knowing you have a logged in user who's authenticated. 
    $user_profile = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    error_log($e); 
    $user = null; 
    } 
} 

// Login or logout url will be needed depending on current user state. 
if ($user) { 
    $logoutUrl = $facebook->getLogoutUrl(); 
} else { 
    $loginUrl = $facebook->getLoginUrl(); 
} 

// This call will always work since we are fetching public data. 
$naitik = $facebook->api('/naitik'); 

?> 
<!doctype html> 
<html xmlns:fb="http://www.facebook.com/2008/fbml"> 
<head> 
<title>php-sdk</title> 
<style> 
body { 
font-family: 'Lucida Grande', Verdana, Arial, sans-serif; 
} 
h1 a { 
text-decoration: none; 
color: #3b5998; 
} 
h1 a:hover { 
text-decoration: underline; 
} 
</style> 
</head> 
<body> 
<h1>php-sdk</h1> 

<?php if ($user): ?> 
<a href="<?php echo $logoutUrl; ?>">Logout</a> 
<?php else: ?> 
<div> 
Login using OAuth 2.0 handled by the PHP SDK: 
<a href="<?php echo $loginUrl; ?>">Login with Facebook</a> 
</div> 
<?php endif ?> 

<h3>PHP Session</h3> 
<pre><?php print_r($_SESSION); ?></pre> 

<?php if ($user): ?> 
<h3>You</h3> 
<img src="https://graph.facebook.com/<?php echo $user; ?>/picture"> 

<h3>Your User Object (/me)</h3> 
<pre><?php print_r($user_profile); ?></pre> 
<?php else: ?> 
<strong><em>You are not Connected.</em></strong> 
<?php endif ?> 

<h3>Public profile of Naitik</h3> 
<img src="https://graph.facebook.com/naitik/picture"> 
<?php echo $naitik['name']; ?> 
</body> 
</html> 
+0

私はこのようなことをしたい、登録フォームでボタンのようなFacebookを追加したい、このボタンをクリックすると彼は私のFacebookのファンページになる、もし彼がボタンスクリプトのようにヒットしなければ、ユーザーが登録できる前に、ボタンのようにヒットしなければならない人は、PHPでこれを実現する方法を教えてください。 –

+0

1つの質問で2つの質問をするべきではありません。私はあなたの元の質問に答えました。インラインで別の質問をしないでください。ご覧ください:http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – DMCS

0

$facebook->getUser();のように思える機能していませんが。 facebook.phpに正しくリンクしているかどうか再度確認してください。

また、あなたのappIdと秘密を非表示にすることもできます。 :-)

+0

こんにちは、これは可能なコメントです..実際に質問に答えていないか、質問に間違っていることを伝えていないからです –

0

私はgithubと同じコードを持っていますが、まだgetuserは0を返します。ここに私のコードがあります:これは私がウィルスにする前にアプリをテストする場所です。

<? 
require 'facebook.php'; 
$app_id = 'xxxxxxxxxxxxxxx'; 
$app_secret = 'xxxxxxxxxxxxxxxxxx'; 

$post_login_url = "http://myhandyapps.com/tester2.php"; 
$code = $_REQUEST["code"]; 

     //Obtain the access_token with publish_stream permission 
     if(empty($code)) 
     { 
      $dialog_url= "https://www.facebook.com/dialog/oauth?" 
      . "client_id=" . $app_id 
      . "&redirect_uri=" . urlencode($post_login_url) 
      . "&scope=publish_stream, photo_upload, user_photos, user_photo_video_tags"; 
      echo("<script>top.location.href='" . $dialog_url . 
      "'</script>"); 
     } 

     else{ 
     $facebook = new Facebook(array(
      'appId' => $app_id, 
      'secret' => $app_secret, 
      'cookie' => true, 

     )); 

     // Get User ID 
     $user = $facebook->getUser(); 
     echo "$user"; 
     if ($user) { 
      try { 
      // Proceed knowing you have a logged in user who's authenticated. 
      $user_profile = $facebook->api('/me'); 
      } catch (FacebookApiException $e) { 
      error_log($e); 
      $user = null; 
      } 
     } 

     if ($user) { 
      $logoutUrl = $facebook->getLogoutUrl(); 
     } else { 
      $loginUrl = $facebook->getLoginUrl(); 
     } 
     //echo "$user"; 
     } 
?> 

編集: 私は何を把握しようとしているのに長い時間の後、同じ問題を持っていた

$post_login_url = "http://apps.facebook.com/nspace_tester"; //got this to my app (CANVAS PAGE) 
0

に私のこのコード

$post_login_url = "http://myhandyapps.com/tester2.php"; 

を変更することにより、それを修正問題は、ユーザーIDを取得するためにアクセストークンが必要であることが判明しました。 signed_requestの形式でアクセストークンを取得するには、ユーザーが最初にアプリを許可する必要があります。これが助けてくれることを願っています。

関連する問題