20 / 19 / 3
Регистрация: 20.06.2010
Сообщений: 626
1

Login with Facebook

03.05.2012, 13:52. Показов 4977. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Хотел бы посоветоваться с людьми которые используют эту примочку.

Я зарегистрировал программу на фейсе получил AppID. Затем скачал php-sdk и загрузил на хостинг, на локальном не работало.
В результате получил example.php
php-sdk

Login using OAuth 2.0 handled by the PHP SDK: Login with Facebook
PHP Session

You are not Connected.
После нажатия на Login with Facebook перебрасывает на страницу фейса там проходишь активацию. После чего страница example.php возвращает два массива. Первый о сессии второй профиль пользователя с именем, ИД, пол, страна и т.д. но нет mail.
А теперь вопрос: Это все?
ID уникальный параметр по нему надо различать посетителе? Что еще можно выжить из этого, например мыло?

Дальше. Мне не нравится текстовая ссылка и я хочу поставить кнопку.
Поставил вот эту http://developers.facebook.com... ins/login/
В результате при нажатии открывается маленькое окно
Войдите в Facebook, чтобы использовать свой аккаунт в приложении
Туда вводишь логин и пароль, она закрывается но реакции на моей странице никакой. Пока не нажмешь на ту же Login with Facebook которую я хочу убрать. Как их связать между собой?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2012, 13:52
Ответы с готовыми решениями:

How to add facebook login
hi, How to add facebook login to my site . i use asp.net . thanks advance .

Facebook login on iOS device
Всем привет! Хотелось бы получить небольшую консультатицию по FB логину в iOS. Вот здесь...

FaceBook LogIn не возвращает Email
Всем привет! Учусь работать с LogIn в различных сервисах, и с FaceBook возникла такая проблема,...

Ошибка "Cannot open database "Pbr" requested by the login. The login failed. Login failed for user 'srv2\admin'."
Winform SQL srever 2012. Локальный В строке `connection.Open();` получаю ошибку: Ошибка...

16
2430 / 2281 / 593
Регистрация: 27.05.2011
Сообщений: 7,795
03.05.2012, 15:05 2
Цитата Сообщение от ICEBERG@ Посмотреть сообщение
Что еще можно выжить из этого, например мыло?
всё что угодно , надо пермишены просить
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
    public static function GetLoginLink( $scope , $redirect )
    {
        $facebook = new facebook; 
                $link =  $facebook-> getLoginUrl (
            array (
        'canvas' => 1,
                'scope'   =>  $scope ,
                 'redirect_uri'  => self::GetProtocol() . $redirect 
        ));
    return $link ;
    }
...
$this -> setvar ( 'redirect' ,self::GetLoginLink('publish_stream,offline_access' , facebook::getConfig( 'appUrl' )) );
0
20 / 19 / 3
Регистрация: 20.06.2010
Сообщений: 626
03.05.2012, 15:27  [ТС] 3
И зачем нужны эти пермишены?

HTML5
1
Parse error: syntax error, unexpected T_PUBLIC in S:\home\localhost\www\auth\auth.php on line 2
Не работает.
0
2430 / 2281 / 593
Регистрация: 27.05.2011
Сообщений: 7,795
03.05.2012, 15:32 4
такто это метод а не функция , и должен быть в классе . я выденрул из контескта своего класса , просто для примера , а не дал готовую функцию
пермишен это запрос у юзера на определенные данные , что никогда не видел в апликациях фейсбучных когда в них заходишь и появляется окно , что преложение хочет получить доступ к вашим данным.

http://developers.facebook.com... rmissions/ список того что можно запросить
0
20 / 19 / 3
Регистрация: 20.06.2010
Сообщений: 626
03.05.2012, 15:51  [ТС] 5
Не припомню. Если для получения этих данных пользователю будет говориться, что то типа "приложение хочет получить доступ к вашим данным" то лучше пока воздержусь. не хочется распугать посетителей. Давайте пока со стандартными разберемся, если можно.
0
2430 / 2281 / 593
Регистрация: 27.05.2011
Сообщений: 7,795
03.05.2012, 15:52 6
ну потребуй ток эмайл , он никого не спугнет ,кроч вот просотй пример как залогинить и получить эмайл
PHP
1
2
3
4
5
6
$params = array(
  'scope' => 'email',
  'redirect_uri' => 'https://urwebsite.com/facebook.login.php'
);
 
$loginUrl = $facebook->getLoginUrl($params);
создай таблицу , айди юзеров и айди фейбука.
далле в обработчике сверяешь эмайл с базой , если есть юзер с таким эмайлом привязываешь аккаунты , логинешь и редиректиш на главную , если нет такого юзера то регаешь его автоматом (пороль произвольный так как он с фейбука логинится будет) , логинешь и редиректишь на главную
0
20 / 19 / 3
Регистрация: 20.06.2010
Сообщений: 626
03.05.2012, 16:15  [ТС] 7
Опять не работает

HTML5
1
Fatal error: Call to a member function getLoginUrl() on a non-object in S:\home\localhost\www\auth\auth.php on line 7
0
2430 / 2281 / 593
Регистрация: 27.05.2011
Сообщений: 7,795
03.05.2012, 16:19 8
$facebook должен быть объект facebook sdk , а у вас что ? я подразумиваю когда пишу , что вы будете разбиратся что происходит ,а не будете слепо копировать , яже вам даю элеметы кода а не готовый файл
вам надо подключить файл фейсбука , создать объект , подать ему данные апликации ,а потом уже вот это вот
0
20 / 19 / 3
Регистрация: 20.06.2010
Сообщений: 626
03.05.2012, 16:32  [ТС] 9
Ничего не понял...
0
2430 / 2281 / 593
Регистрация: 27.05.2011
Сообщений: 7,795
03.05.2012, 16:42 10
Цитата Сообщение от ICEBERG@ Посмотреть сообщение
Ничего не понял...
вы скачали себе библиотеку фейсбучную (php sdk)?

Добавлено через 4 минуты
пс. у вас есть хоть какието знания php , хочу понять насколько доканально придется разжевывать?
0
20 / 19 / 3
Регистрация: 20.06.2010
Сообщений: 626
03.05.2012, 17:33  [ТС] 11
Цитата Сообщение от crautcher Посмотреть сообщение
вы скачали себе библиотеку фейсбучную (php sdk)?

Добавлено через 4 минуты
пс. у вас есть хоть какието знания php , хочу понять насколько доканально придется разжевывать?
Вы читали мой первый пост?

Да у меня есть php sdk он мне дает массив с профилем пользователя.

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Array
(
    [id] => 
    [name] => 
    [first_name] => 
    [last_name] => 
    [link] => http://www.facebook.com/profile.php?id=
    [hometown] => Array
        (
            [id] => 
            [name] => 
        )
 
    [location] => Array
        (
            [id] => 
            [name] => 
        )
 
    [gender] => 
    [timezone] =>
    [locale] => 
    [updated_time] => 
)
Пока все.
0
2430 / 2281 / 593
Регистрация: 27.05.2011
Сообщений: 7,795
03.05.2012, 17:38 12
ну тогда не понимаю как вы не можете интегрировать мой код в ваш , покажите где вы получаете ссылку на логин
0
20 / 19 / 3
Регистрация: 20.06.2010
Сообщений: 626
03.05.2012, 18:09  [ТС] 13
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?php
require 'facebook-php-sdk/src/facebook.php';
 
$facebook = new Facebook(array(
  'appId'  => 'КОД',
  'secret' => 'КОД',
));
 
// Get User ID
$user = $facebook->getUser();
 
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();
}
?>
 
 
 
<!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>
  
  
<!-- Кнопка -->
<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/ru_RU/all.js#xfbml=1&appId=КОД";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
 
<div class="fb-login-button" data-show-faces="false" data-width="10" data-max-rows="1"></div>
<!-- -->
 <hr> 
  
    <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 ?>
 
    <hr>
    <?php print_r($user_profile[name]); ?>
    
  </body>
</html>
0
2430 / 2281 / 593
Регистрация: 27.05.2011
Сообщений: 7,795
03.05.2012, 18:13 14
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
require 'facebook-php-sdk/src/facebook.php';
 
$facebook = new Facebook(array(
  'appId'  => 'КОД',
  'secret' => 'КОД',
));
 
$user = $facebook->getUser();
 
if ($user) {
  try {
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}
 
if ($user) 
  $logoutUrl = $facebook->getLogoutUrl(); 
else 
{
  $params = array(
  'scope' => 'email',
  'redirect_uri' => 'тут адрес поменяй'
);
$loginUrl = $facebook->getLoginUrl($params);
 
}
?>
должно придти с эмайлом
1
20 / 19 / 3
Регистрация: 20.06.2010
Сообщений: 626
03.05.2012, 20:30  [ТС] 15
Да маил получен, спасибо. Но он все же спрашивает у пользователя разрешение. Так что пока придется отложить. Пока активация происходит на сайте самого фейсбука и там это может прокатить, если активация будет на моем сайте на всплывающем окне то может спугнуть. Я бы сам например отказал.
И сейчас я именно этого и добиваюсь что бы активация происходила у меня.

Как этого добиться?
Что бы выходило окно типа https://developers.facebook.co... ins/login/
а после активации он также передавал системе массив с профилем пользователя?
Вы сами как сделали вообще? В окне или на сайте фейсбука?



Я пробую добавить другие пермишоны

PHP
1
2
3
4
5
  $params = array(
  'scope' => 'email',
  'birthday' => 'user_birthday',
  'redirect_uri' => 'http://______________/auth/auth.php');
  $loginUrl = $facebook->getLoginUrl($params);
но он не реагирует. Почему?
0
2430 / 2281 / 593
Регистрация: 27.05.2011
Сообщений: 7,795
04.05.2012, 10:21 16
Цитата Сообщение от ICEBERG@ Посмотреть сообщение
но он не реагирует. Почему?
через запятую перечисляются пермишены
PHP
1
2
3
4
$params = array(
  'scope' => 'email,user_birthday,friends_birthday',
  'redirect_uri' => 'http://______________/auth/auth.php');
  $loginUrl = $facebook->getLoginUrl($params);
Цитата Сообщение от ICEBERG@ Посмотреть сообщение
а после активации он также передавал системе массив с профилем пользователя?
ну так на этой странице с низу описаны опции которые можно подать , там есть registration-url , адрес на который фесбук отправит данные , затем на этой странице должен произойти логин , окошко должно закрыть само себя и перезагрузить главную страницу
0
20 / 19 / 3
Регистрация: 20.06.2010
Сообщений: 626
04.05.2012, 22:34  [ТС] 17
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/ru_RU/all.js#xfbml=1&appId=КОД";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
 
 
<!-- Кнопка -->
<div class="fb-login-button" scope="email,user_birthday" registration-url="http://_________/auth/" data-show-faces="false" data-width="10" data-max-rows="1"></div>
<!-- -->
Не работает эта зараза... т.е. активация проходит но php-sdk на него не реагирует.
0
04.05.2012, 22:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.05.2012, 22:34
Помогаю со студенческими работами здесь

что делает команда $user = SELECT * FROM `users` WHERE `Login` = '$_POST[login]'?
Эта команда помещает в переменную user всю строчку из таблицы? Например у меня есть таблица, и есть...

OpenGraph facebook. Считаются ли по версии facebook страницы с разными параметрами url дублями?
Настроил og-теги на страницы с новостями. У меня адрес выглядит так: сайт/news/?ELEMENT_ID=100500...

Шаринг в соцсетях. Facebook (share42) или дебаггер facebook
Кто сталкивался с данным плагином помогите или расскажите про дебаггер facebook. Установил данный...

API Facebook, отправляем сообщение на страницу Facebook из PHP
Всем привет! При отправке сообщения почему-то НЕ происходит автоматический запрос с помощью...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

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