2012-01-17 9 views
0

У меня проблема с этим кодом, я ищу везде, но не получил ответа на эту проблему. Это мой кодgetUser всегда возвращает 0

<?php 

     require_once('facebook.php'); 


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

     $user_id = $facebook->getUser(); 

     echo $user_id; 
    ?> 

Этот код каждый раз возвращает 0, даже если я авторизованы на Facebook с моим счетом, может кто-то помочь мне решить эту проблему или объяснить, что случилось? Я использую facebook-PHP-СДК-v3.1.1-21


Я хочу сделать что-то вроде этого, в регистрационной форме необходимо добавить фейсбук кнопку, как, когда пользователь нажимает на эту кнопку, он стал поклонником моя страница поклонника facebook, если он не ударил, как кнопка, скрипт должен проверить на это и вывести ошибку, которая перед тем, как пользователь сможет зарегистрировать, должен нажать кнопку, может ли кто-нибудь дать мне несколько советов или часть сценария, как это реализовать с помощью PHP?

+1

Этого недостаточно, чтобы войти в Facebook. Ваше приложение тоже должно быть. –

+0

А что делать для этого? –

+1

Есть [тонны учебных пособий] (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

Вы не должны задавать два вопроса в одном вопросе. Я ответил на ваш первоначальный вопрос. Пожалуйста, не задавайте другой вопрос. Пожалуйста, смотрите: http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – DMCS

0

Похоже $facebook->getUser(); не работает. Дважды проверьте, правильно ли вы связаны с facebook.php.

Кроме того, вы можете скрыть свое приложение и секрет. :-)

+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://myhandyapps.com/tester2.php"; 

в

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

я была такая же проблема, после долгого времени, пытаясь выяснить, что проблема в том, что я нашел, что вам нужен токен доступа, чтобы получить идентификатор пользователя. Чтобы получить токен доступа к форме signed_request, пользователь должен сначала разрешить (чтобы получить разрешения) приложение. Я надеюсь, что это поможет

Смежные вопросы