Получить идентификатор пользователя из Facebook в PHP - PullRequest
3 голосов
/ 05 августа 2011

Я пытаюсь создать приложение для Facebook и мне нужен идентификатор пользователя из Facebook, когда пользователь открывает приложение.Я установил свое приложение и форму его показа на холсте Facebook, мне нужна помощь в подключении API Facebook к моей странице. Нужно ли мне загружать API для этого?И как мне получить идентификатор пользователя из объекта JSON, который, по словам Facebook, отправляет приложению?

Мое тестовое приложение:

<?php

echo "this is working";

?> 

Это работает в Facebook.

Ответы [ 2 ]

9 голосов
/ 05 августа 2011

Загрузить PHP SDK

Очень простой пример кода для получения идентификатора пользователя - если пользователь вошел в систему и авторизовал приложение, тогда $facebook->getUser() выдаст вам идентификатор пользователя:

<code>require 'facebook.php';

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

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

if ($user) {
  try {
    // Get the user profile data you have permission to view
    $user_profile = $facebook->api('/me');
    echo "<pre>";
    print_r($user_profile);
    echo "
"; } catch (FacebookApiException $ e) { $ user = null; } } еще { умереть ( ' top.location.href = "' $ facebook-> getLoginUrl ().."; '); }

Посмотрите примеры в SDK и на сайте разработчиков Facebook .

0 голосов
/ 24 марта 2016

Вот мой хак-код, написанный мной, который позволяет получить любой идентификатор пользователя Facebook, даже если он не авторизован или не авторизован приложением https://github.com/invisiblevision/get-facebook-id/

<?php
$profile_url = 'https://facebook.com/profileUrl';
 function get_web_page( $url )
    {
        $user_agent='Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0';
        $options = array(
            CURLOPT_CUSTOMREQUEST  =>"GET",        //set request type post or get
            CURLOPT_POST           =>false,        //set to GET
            CURLOPT_USERAGENT      => $user_agent, //set user agent
            CURLOPT_COOKIEFILE     =>"cookie.txt", //set cookie file
            CURLOPT_COOKIEJAR      =>"cookie.txt", //set cookie jar
            CURLOPT_RETURNTRANSFER => true,     // return web page
            CURLOPT_HEADER         => false,    // don't return headers
            CURLOPT_FOLLOWLOCATION => true,     // follow redirects
            CURLOPT_ENCODING       => "",       // handle all encodings
            CURLOPT_AUTOREFERER    => true,     // set referer on redirect
            CURLOPT_CONNECTTIMEOUT => 120,      // timeout on connect
            CURLOPT_TIMEOUT        => 120,      // timeout on response
            CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
        );
        $ch      = curl_init( $url );
        curl_setopt_array( $ch, $options );
        $content = curl_exec( $ch );
        $err     = curl_errno( $ch );
        $errmsg  = curl_error( $ch );
        $header  = curl_getinfo( $ch );
        curl_close( $ch );
        $header['errno']   = $err;
        $header['errmsg']  = $errmsg;
        $header['content'] = $content;
        return $header;
    }

/*Getting user id */
$url = 'http://findmyfbid.com';
$data = array('url' => $profile_url );
// use key 'http' even if you send the request to https://...
$options = array(
    'http' => array(
        'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
        'method'  => 'POST',
        'content' => http_build_query($data),
    ),
);
$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);
function getData($data)
{
    $dom = new DOMDocument;
    $dom -> loadHTML( $data );
    $divs = $dom -> getElementsByTagName('code');
    foreach ( $divs as $div )
    {
            return $div -> nodeValue;

    }
}
$uid = getData($result);  // User ID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...