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

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

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

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
Работая с php довольно долго, недавно появилась такая задача: создать на facebook страницу и там сделать подгрузку стороннего сайта тэгом <iframe>, на стороннем сайте который подгружается, идёт добавление новостей пользователями фейсбука, в форме которую заполняет пользователь есть поле NAME в которое нужно вводить своё имя, проблема в том что не каждый его будет вводить правильно, а то и вообще введёт ник.. Хотелось бы чтобы в это поле автоматически подставлялись его имя и фамилия, и желательно отдельно чтобы была ссылка на его страницу профиля..
Как мне можно это осуществить? ведь есть скрипты авторизации для сторонних сайтов, авторизация идёт через фейсбук, и этот скрипт показывает твои имя, фамилию и адрес страницы.. но в начале он запрашивает разрешение на это.. Скажите как мне это сделать проще?
Заранее спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.01.2012, 15:25
Ответы с готовыми решениями:

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

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

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

10
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
10.01.2012, 15:43
Через API, больше никак.
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
10.01.2012, 15:59
http://developers.facebook.com/docs/reference/php/
1
1 / 1 / 1
Регистрация: 26.02.2011
Сообщений: 63
11.01.2012, 15:45  [ТС]
Цитата Сообщение от Vovan-VE Посмотреть сообщение
спасибо, всё получилось)))
0
 Аватар для crautcher
2449 / 2300 / 597
Регистрация: 27.05.2011
Сообщений: 7,837
11.01.2012, 18:12
на заметку фкуэл работает быстрее других методов
1
1 / 1 / 1
Регистрация: 26.02.2011
Сообщений: 63
11.01.2012, 18:16  [ТС]
Цитата Сообщение от crautcher Посмотреть сообщение
на заметку фкуэл работает быстрее других методов
а подробнее можно??
0
 Аватар для crautcher
2449 / 2300 / 597
Регистрация: 27.05.2011
Сообщений: 7,837
11.01.2012, 18:34
Цитата Сообщение от 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  [ТС]
Цитата Сообщение от 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
 Аватар для crautcher
2449 / 2300 / 597
Регистрация: 27.05.2011
Сообщений: 7,837
13.01.2012, 16:40
Цитата Сообщение от 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  [ТС]
crautcher
всё сделал в точности как ты написал, но почему он показывает инфу только моего профиля, а когда другие юзеры заходят то он ошибку выдаёт?
0
1 / 1 / 1
Регистрация: 26.02.2011
Сообщений: 63
25.01.2012, 16:54  [ТС]
проблему решил! но немного другим путём, куму интересно - вот код:
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.01.2012, 16:54
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Обмен данными в микросервисной архитектуре
ArchitectMsa 06.04.2025
Когда разработчики начинают погружаться в мир микросервисов, они часто сталкиваются с парадоксальным правилом: "два сервиса не должны делить один источник данных". Эта мантра звучит повсюду в. . .
PostgreSQL в Kubernetes: Автоматизация обслуживания с CNPG
Mr. Docker 06.04.2025
Администраторы баз данных сталкиваются с целым рядом проблем при обслуживании PostgreSQL в Kubernetes: как обеспечить правильную репликацию данных, как настроить автоматическое переключение при. . .
Async/await в TypeScript
run.dev 06.04.2025
Асинхронное программирование — это подход к разработке программного обеспечения, при котором операции выполняются независимо друг от друга. В отличие от синхронного выполнения, где каждая последующая. . .
Многопоточность в C#: Синхронизация потоков
UnmanagedCoder 06.04.2025
Многопоточное программирование стало неотъемлемой частью разработки современных приложений на C#. С появлением многоядерных процессоров возможность выполнять несколько задач параллельно значительно. . .
TypeScript: Классы и конструкторы
run.dev 06.04.2025
TypeScript, как статически типизированный язык, построенный на основе JavaScript, привнес в веб-разработку новый уровень надежности и структурированности кода. Одним из важнейших элементов этой. . .
Многопоточное программирование: Rust против C++
golander 06.04.2025
C++ существует уже несколько десятилетий и его поддержка параллелизма постепенно наращивалась со временем. Начиная с C++11, язык получил стандартную библиотеку для работы с потоками, а в последующих. . .
std::vector в C++: от основ к оптимизации производительности
NullReferenced 05.04.2025
Для многих программистов знакомство с std::vector происходит на ранних этапах изучения языка, но между базовым пониманием и подлинным мастерством лежит огромная дистанция. Контейнер std::vector. . .
Реляционная модель и правила Кодда: фундамент современных баз данных
Codd 05.04.2025
Конец 1960-х — начало 1970-х годов был периодом глубоких трансформаций в области хранения и обработки данных. На фоне растущих потребностей бизнеса и правительственных структур существовавшие на тот. . .
Асинхронные операции в Django с Celery
py-thonny 05.04.2025
Разработчики Django часто сталкиваются с проблемой, когда пользователь нажимает кнопку отправки формы и. . . ждёт. Секунды растягиваются в минуты, терпение иссякает, а интерфейс приложения замирает. . . .
Использование кэшей CPU: Максимальная производительность в Go
golander 05.04.2025
Разработчикам хорошо известно, что эффективность кода зависит не только от алгоритмов и структур данных, но и от того, насколько удачно программа взаимодействует с железом. Среди множества факторов,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер