Настройки экземпляра приложения Facebook - PullRequest
2 голосов
/ 30 июня 2011

У меня есть приложение, которое должно иметь уникальные настройки для каждого экземпляра пользователя, добавляющего его на свою страницу (оно должно быть добавлено в виде вкладки).

Я не смог найти никакой документации для этого - кто-нибудь знает как? Или у кого-нибудь есть пример для подражания или место для изучения?


РЕШЕНИЕ

Я создал раздел на вкладке для страницы пользователя приложения, который отображается только для администраторов страницы. Он ссылается на страницу в моем приложении, отправляя page_id на мою страницу. Это позволяет мне теперь хранить информацию (и настройки) в моей базе данных на основе page_id.

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

Если кому-то понадобятся дальнейшие объяснения, не стесняйтесь сообщать мне, я был бы рад помочь.

Ответы [ 3 ]

2 голосов
/ 02 июля 2011

Я почти уверен, что вы ищете экземпляр страницы. Каждая страница имеет идентификатор Facebook, как и каждый пользователь. По большей части, вы можете использовать идентификатор страницы везде, где вы хотите использовать идентификатор пользователя. То, что вы хотите сделать, это захватить идентификатор страницы, а не идентификатор пользователя, добавляющего его на страницу (администратора). Прокрутите почти весь путь до конца, если этот URL-адрес, чтобы увидеть, как получить идентификатор страницы: http://developers.facebook.com/docs/guides/canvas/

В основном, дополнительный параметр включает вызов "page", который будет содержать идентификатор страницы. Используйте это для взаимодействия со страницей и сохранения любой информации о сеансе.

1 голос
/ 02 июля 2011

Когда пользователь заходит в ваше приложение, открывая вкладку на другой странице, ваше приложение получает переменную POST с именем signed_request.

. В PHP эта переменная может быть декодирована следующим образом:

function parse_signed_request($signed_request, $secret) {
  list($encoded_sig, $payload) = explode('.', $signed_request, 2); 

  // decode the data
  $sig = base64_url_decode($encoded_sig);
  $data = json_decode(base64_url_decode($payload), true);

  if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
    error_log('Unknown algorithm. Expected HMAC-SHA256');
    return null;
  }

  // check sig
  $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
  if ($sig !== $expected_sig) {
    error_log('Bad Signed JSON signature!');
    return null;
  }

  return $data;
}

function base64_url_decode($input) {
  return base64_decode(strtr($input, '-_', '+/'));
}

$arr = parse_signed_request($_POST["signed_request"], "YOUR_APP_SECRET");

echo print_r($arr);

Возможно, вы можете использовать $ arr ["page"] ["id"], чтобы узнать, какая страница получила доступ к вашему приложению.

Подробнее об этом можно прочитать здесь:

http://developers.facebook.com/blog/post/462/

http://developers.facebook.com/docs/authentication/signed_request/

Надеюсь, это поможет!

1 голос
/ 30 июня 2011

Вы можете использовать базу данных для хранения настроек каждого экземпляра пользователя с уникальным ключом (используйте функцию php uniqid).

Приложение может получить настройки на основе ключа по отношению к пользователю.

...