Дополнительные настройки для Facebook php API - PullRequest
1 голос
/ 06 декабря 2010

Возможно, я искал совершенно неправильно, и документация на фейсбуке, по моему мнению, отстой.

Мне было интересно, я подключаюсь к Facebook с настройками ниже, и это работает (я могу получить информацию о профиле вошедшего в систему пользователя, позволяет моему приложению получить доступ к его профилю.) Есть ли другие варианты, которые я могу установить, как URL-адрес обратного вызова и срок действия (который я хочу установить никогда, чтобы я мог сохранить токен в моей БД и использовать его повторно)

Теперь это конфиг:

$facebook = new Facebook(array(
        'appId'  => 'xxxxxxxxxxxx',
        'secret' => 'xxxxxxxxxxxx',
        'cookie' => true
    ));

Я тоже подключен к твиттеру и там могу:

$this->configTwitter = array(
        'callbackUrl' => 'xxxxxxxxxxxx',
        'siteUrl' => 'http://twitter.com/oauth',
        'consumerKey' => 'xxxxxxxxxxxx',
        'consumerSecret' => 'xxxxxxxxxxxx'
    );

Заранее спасибо!

Facebook должен взглянуть на Twitter

Ответы [ 2 ]

2 голосов
/ 08 декабря 2010

Попробовав несколько дней, выплюнув документацию Graph OAuth 2.0 (которая работает не так, как ожидалось, и выполнив поиск в Интернете, я нашел решение, которое использовал для создания следующего скрипта:

    // Config
    $this->redirectUrl = 'http://www.mywebsite.com/facebook'
    $this->clientId = 'APPLICATION_ID';
    $this->permissions = 'publish_stream,offline_access';

    // Check if a sessions is present 
    if(!$_GET['session'])
    {
        // Authorize application
        header('Location: http://www.facebook.com/connect/uiserver.php?app_id='.$this->clientId.'&next='.$this->redirectUrl.'&perms='.$this->permissions.'&return_session=1&session_version=3&fbconnect=0&canvas=1&legacy_return=1&method=permissions.request');
    }
    else
    {
        $token = json_decode($_GET['session']);
                    echo $token->access_token; // This is the access_token you'll need!

        // Insert token in the database or whatever you want
    }

Этот фрагмент кода прекрасно работает и выполняет следующие действия:

  1. Войдите в систему, если пользователь не вошел в Facebook
  2. Запрашивает, хочет ли пользователь добавить приложение, и предоставляет запрошенные разрешения (в моем случае: publish_stream и offline_access) в одном диалоговом окне
  3. возвращает на страницу, которую вы указали в redirectUrl с access_token (и поскольку мы просили офлайн-доступ, срок действия этого срока не истекает)

Затем я сохраняю токен в базе данных, поэтому мне не придется запрашивать его снова

Теперь вы можете, если хотите, использовать код facebook или собственный код для получения данных о пользователях или другой информации из facebook (убедитесь, что вы запросили правильные разрешения)

Не сейчас, если это правильный код Facebook, но он отлично работает, и я могу легко определить «конфиг», как я хотел ....

0 голосов
/ 07 декабря 2010

Есть много настроек, которые вы можете установить в момент аутентификации.Расширенные разрешения позволяют вам установить offline_access, чтобы вы могли аутентифицировать и сохранять ваш сеанс в БД.Более подробную информацию о расширенных разрешениях можно найти по адресу developers.facebook.com/docs/authentication/permissions, и вы можете прочитать мой блог для получения дополнительной информации о том, как их использовать, по адресу http://www.joeyrivera.com/2010/facebook-graph-api-app-easy-w-php-sdk/

...