Форум программистов, компьютерный форум, киберфорум
PHP: API, боты
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/32: Рейтинг темы: голосов - 32, средняя оценка - 4.78
1 / 1 / 1
Регистрация: 26.02.2011
Сообщений: 63
1

facebook:получение переменных с именем пользователя

10.01.2012, 15:25. Показов 6354. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
Работая с php довольно долго, недавно появилась такая задача: создать на facebook страницу и там сделать подгрузку стороннего сайта тэгом <iframe>, на стороннем сайте который подгружается, идёт добавление новостей пользователями фейсбука, в форме которую заполняет пользователь есть поле NAME в которое нужно вводить своё имя, проблема в том что не каждый его будет вводить правильно, а то и вообще введёт ник.. Хотелось бы чтобы в это поле автоматически подставлялись его имя и фамилия, и желательно отдельно чтобы была ссылка на его страницу профиля..
Как мне можно это осуществить? ведь есть скрипты авторизации для сторонних сайтов, авторизация идёт через фейсбук, и этот скрипт показывает твои имя, фамилию и адрес страницы.. но в начале он запрашивает разрешение на это.. Скажите как мне это сделать проще?
Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2012, 15:25
Ответы с готовыми решениями:

Получение публикаций пользователя facebook
Всем привет, прошу вашей помощи, в поиске решения такой задачи: необходимо получить все публикации...

Запрос и ввод имени пользователя, сравнение с текущим логическим именем пользователя и вывод результата
нужна помощь! 5. Запрос и ввод имени пользователя, сравнение с текущим логическим именем...

Facebook, уведомления о постах пользователя
Стоит задача написать Telegram бота, который будет отправлять уведомления о новых постах...

Получить e-mail пользователя facebook
Подскажите как можно получить e-mail пользователя facebook? Пытаюсь получить так: String email...

10
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
10.01.2012, 15:43 2
Через API, больше никак.
0
13208 / 6597 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
10.01.2012, 15:59 3
http://developers.facebook.com/docs/reference/php/
1
1 / 1 / 1
Регистрация: 26.02.2011
Сообщений: 63
11.01.2012, 15:45  [ТС] 4
Цитата Сообщение от Vovan-VE Посмотреть сообщение
спасибо, всё получилось)))
0
2434 / 2286 / 594
Регистрация: 27.05.2011
Сообщений: 7,810
11.01.2012, 18:12 5
на заметку фкуэл работает быстрее других методов
1
1 / 1 / 1
Регистрация: 26.02.2011
Сообщений: 63
11.01.2012, 18:16  [ТС] 6
Цитата Сообщение от crautcher Посмотреть сообщение
на заметку фкуэл работает быстрее других методов
а подробнее можно??
0
2434 / 2286 / 594
Регистрация: 27.05.2011
Сообщений: 7,810
11.01.2012, 18:34 7
Цитата Сообщение от DJ_Vadim Посмотреть сообщение
а подробнее можно??
делаешь запрос апи и получаешь результат
PHP
1
2
3
4
5
6
 try {
       $fbProfile = $facebook -> api(array('method'=> 'fql.query', 'query'=>'SELECT uid, name, first_name, last_name, username, birthday_date, current_location, sex, email, locale FROM user WHERE uid = me()'));
     } 
catch (FacebookApiException $e) {
       return false;
     }
2
1 / 1 / 1
Регистрация: 26.02.2011
Сообщений: 63
13.01.2012, 15:04  [ТС] 8
Цитата Сообщение от crautcher Посмотреть сообщение
делаешь запрос апи и получаешь результат
PHP
1
2
3
4
5
6
 try {
       $fbProfile = $facebook -> api(array('method'=> 'fql.query', 'query'=>'SELECT uid, name, first_name, last_name, username, birthday_date, current_location, sex, email, locale FROM user WHERE uid = me()'));
     } 
catch (FacebookApiException $e) {
       return false;
     }
я видимо что то неправильно делаю.. Можете подробно расписать метод, что подключать, куда что вводить и как выводить данные..?

Спасибо заранее
0
2434 / 2286 / 594
Регистрация: 27.05.2011
Сообщений: 7,810
13.01.2012, 16:40 9
Цитата Сообщение от DJ_Vadim Посмотреть сообщение
я видимо что то неправильно делаю.. Можете подробно расписать метод, что подключать, куда что вводить и как выводить данные..?

Спасибо заранее
я фкуэл не юзаю , я юзаю обычный апи , мне прост говорили что фкуэл быстрее . могу показать как я делаю


1. подключаем facebooksdk (facebook класс)
2. создаём обьект фейсбука
PHP
1
2
3
4
5
6
  $config = array(
    'appId' => 'YOUR_APP_ID',
    'secret' => 'YOUR_APP_SECRET',
  );
 
  $facebook = new Facebook($config);
3
PHP
1
$uid = $facebook->getUser();
вернет либ юзера если он залогинен либ ничего следвательно у нас 2 варианта
3.1 юзер залогинен значит пришли данные о его айди
PHP
1
2
3
4
5
6
7
8
if ($uid) 
      try {
     //можем обращатся к апи , любое обращение делать надо чере трай кетч
        $user_profile = $facebook->api('/me','GET');
        print_r($user_profile);// тут все данные
      } catch(FacebookApiException $e) { //если не удалось то смотрим в чем ошибка
         echo $e->getMessage();
      }
3.2 если йзуер не залогинен , нужно его залогинить
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// функция вернет урл на который нужно ридеректнуть юзера 
// подаётся список пермишенов которые мы просим для дополнительных данных , и адрес куда фейсбук перенаправит юзера после логина
public static function GetLoginLink( $scope , $redirect , $canvas = 1)
{
$facebook = new facebook; 
  $link =  $facebook-> getLoginUrl (
          array (
    'canvas' => $canvas,
        'scope'   =>  $scope ,
        'redirect_uri'  => self::GetProtocol() . $redirect 
        )); 
 
return $link ;
}
 
public static function GetProtocol()
{
if ( $_SERVER['SERVER_PORT'] == '443' )
        return 'https://';
return 'http://';
}
1
1 / 1 / 1
Регистрация: 26.02.2011
Сообщений: 63
25.01.2012, 13:22  [ТС] 10
crautcher
всё сделал в точности как ты написал, но почему он показывает инфу только моего профиля, а когда другие юзеры заходят то он ошибку выдаёт?
0
1 / 1 / 1
Регистрация: 26.02.2011
Сообщений: 63
25.01.2012, 16:54  [ТС] 11
проблему решил! но немного другим путём, куму интересно - вот код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<? require_once("facebook.php");
      $name = ''; $profile = ''; $authors = ''; //Создаём переменные чтобы не отображались ошибки
      $facebook = new Facebook(array(
          'appId'  => 'тут мои id ',
          'secret' => 'и секрет id',
        ));
          // Get User ID
        $user = $facebook->getUser();
            try {
                // Proceed knowing you have a logged in user who's authenticated.
                $user_profile = $facebook->api('/me');
              } catch (FacebookApiException $e) {
                $user = null;
              }
    ?>
    <?php if ($user) { 
        $name = $user_profile['name'];
        $profile = $user_profile['id'];
        $authors = $name;
        ?>
HTML5
1
2
3
<p>Вы можете добавить запись</p>
      <div id="profile_img"><img style="border: 2px solid #ccc; float: left; margin-right: 5px;" src="https://graph.facebook.com/<?php echo $user; ?>/picture"></div><br>
      <?=$authors;?><br>
PHP
1
2
3
4
5
6
7
<a href="http://www.facebook.com/profile.php?id=<?=$profile;?>" target="_blank">Ваш профиль</a>
    <p><?=$main_info['text'];?></p>
    <?php } else { ?>
        <strong><em>В целях безопаности Вам надо подтвердить что Вы это Вы, нажмите кнопку LogIn.</em></strong>
      <fb:login-button></fb:login-button>
    <?php } ?>
    <div id="fb-root"></div>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<script>
      window.fbAsyncInit = function() {
        FB.init({
          appId: '<?php echo $facebook->getAppID() ?>',
          cookie: true,
          xfbml: true,
          oauth: true
        });
        FB.Event.subscribe('auth.login', function(response) {
          window.location.reload();
        });
        FB.Event.subscribe('auth.logout', function(response) {
          window.location.reload();
        });
      };
      (function() {
        var e = document.createElement('script'); e.async = true;
        e.src = document.location.protocol +
          '//connect.facebook.net/en_US/all.js';
        document.getElementById('fb-root').appendChild(e);
      }());
    </script>
а данные я в форму вставляю)))
PHP
1
2
<input type="hidden" name="author" value="<?=$authors.' ';?>">
            <input type="hidden" name="profile" value="<?=$profile;?>">
0
25.01.2012, 16:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2012, 16:54
Помогаю со студенческими работами здесь

API Facebook. Авторизация. Как получить фото пользователя
Здравствуйте! Не могу получить фото залогиневшегося у меня на сайте пользователя. при запросе...

Новая таблица с именем пользователя
Всем добрый вечер! Есть рабочий личный кабинет и таблица, куда записываются все зарегистрированные...

проблема с именем пользователя на кириллице
У меня Windows 10. При покупке ввели имя пользователя на кириллице как Любовь. Столкнулась с...

Инициализация переменных с разным именем в цикле
Добрый день, по сути весь вопрос написан в заголовке, нужно с каждой итерацией создавать новую...

Открытие файлов с именем, составленным из переменных
вводится диапазон дат, который начинает открывать файлы типа &quot;t_130917_01.dat&quot;, а затем накручивает...

Process.Start c именем пользователя и пароля
Добрый день господа. Помогите разобраться в задаче. как войти в сетевую папку используя логин и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru