Мне нужно создать интеграцию с моим сайтом и FB, и я довольно смущен документацией FB (это длинный поток слов, а не дружественный к моей точке) и токен авторизации.Создайте приложение FB, чтобы проверить «Мне нравится» на странице fb
Мое «приложение» должно быть только проверьте, понравилась ли пользовательская страница fb и на ее основе некоторое содержимое на моем сайте.
Я запутался о следующем пункте:
- Что это лучший способ сделать это (PHP SDK или JS SDK)?
- Какие приложения я должен создать (сайт с Facebook Вход?, Page Tab?)
- возможно выполнить задачу без авторизации маркера или попросить пользователя авторизовать приложение?
То, что я сделал до сих пор:
Я использую 2 подхода:
- Graph API (не уверен, что о правильном названии)
- работает, но просят разрешение пользователя для моего приложения
- PHP SDK
- не работает: Я думаю, что это требует журнал в
- Я предпочел бы использовать этот метод, поскольку он является более чистым (без редиректа)
1. Graph API
<?php
$app_id = 'xxxxxxxxxxxxx';
$app_secret = 'xxxxxxxxxxxxxxxxxx';
$my_url = 'http://www.xxxxxxxxxxxxx.net/testfb.php';
$code = $_REQUEST["code"];
// auth user
if (empty($code)) {
$dialog_url = 'https://www.facebook.com/dialog/oauth?client_id='
. $app_id . '&redirect_uri=' . urlencode($my_url);
echo("<script>top.location.href='" . $dialog_url . "'</script>");
}
// get user access_token
$token_url = 'https://graph.facebook.com/oauth/access_token?client_id='
. $app_id . '&redirect_uri=' . urlencode($my_url)
. '&client_secret=' . $app_secret
. '&code=' . $code;
// response is of the format "access_token=AAAC..."
$access_token = substr(file_get_contents($token_url), 13);
$fql_query_url = 'https://graph.facebook.com/'
. 'fql?q=SELECT+uid+FROM+page_fan+WHERE+page_id=351144741645225+AND+uid=me()'
. '&access_token=' . $access_token;
$fql_query_obj = json_decode(file_get_contents($fql_query_url), true);
$data = array();
echo 'User Liked ?';
// display results of fql query
if (isset($fql_query_obj['data'])) {
$data = $fql_query_obj['data'];
}
if (isset($data[0])) {
echo 'YES';
} else {
echo 'NO';
}
2. PHP SDK
<?php
require './lib/facebook.php';
$facebook = new Facebook(array(
'appId' => 'xxxxxxxxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxxxx',
'cookie' => 'true'
));
//$access_token = $facebook->getAccessToken();
//$signed_request = $facebook->getSignedRequest();
// Get User ID
$user = $facebook->getUser();
var_dump($user);
//if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
$isFan = $facebook->api(array(
"method" => "fql.query",
"query" => "SELECT uid FROM page_fan WHERE page_id = 'yyyyyyyyyy' AND uid = me()"
));
var_dump($isFan);
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
//} else {
// echo 'no logged in';
//}