Я думаю, что схожу с ума. Я не могу заставить его работать.
Я просто хочу проверить, понравилась ли пользователю моя страница с помощью javascript в iFrame
приложении.
FB.api({
method: "pages.isFan",
page_id: my_page_id,
}, function(response) {
console.log(response);
if(response){
alert('You Likey');
} else {
alert('You not Likey :(');
}
}
);
Это возвращает: False
Но я фанат своей страницы, так что разве это не должно возвращать true ?!
Ответы:
Я тоже рвал волосы на этом. Ваш код работает только в том случае, если пользователь предоставил расширенное разрешение на то, что не идеально.
Вот еще один подход.
Вкратце, если вы включите
OAuth 2.0
расширенный параметр для Canvas, Facebook будет отправлять сообщение$_REQUEST['signed_request']
вместе с каждой страницей, запрошенной в вашем приложении вкладки. Если вы проанализируете этот signed_request, вы сможете получить некоторую информацию о пользователе, в том числе, понравилась ли ему страница или нет.источник
signed_request
. Это опасный подход. Вы должны сравнить его с секретом вашего приложения. Проверьте этот ответ для получения дополнительной информацииВы можете использовать (PHP)
Это вернет одно из трех:
Я думаю, что единственный способ добиться этого без использования токена - это только что опубликованный подписанный_request Джейсон Сиффринг. Мой помощник, использующий PHP SDK:
источник
Вы можете сделать это в JavaScript следующим образом ( основываясь на ответе @dwarfy на аналогичный вопрос ):
Если файл channel.html на вашем сервере просто содержит строку:
Там есть небольшое дублирование кода, но вы поняли идею. Появится диалоговое окно входа в систему при первом посещении страницы пользователем (что не совсем идеально, но работает). Однако при последующих посещениях ничего не должно всплывать.
источник
Хотя этот пост был здесь довольно давно, решения не являются чистым JS. Хотя Джейсон отметил, что запрос разрешений не идеален, я считаю это хорошим делом, поскольку пользователь может отклонить его явно. Я все еще публикую этот код, хотя (почти) то же самое можно увидеть в другом сообщении ifaour . Считайте, что это версия, предназначенная только для JS, без особого внимания к деталям.
Базовый код довольно прост:
В качестве альтернативы замените
me
правильным UserID другого пользователя (для этого вам может потребоваться изменить разрешения ниже, напримерfriends_likes
) Как уже отмечалось, вам нужно больше, чем базовое разрешение:источник
Я использую jquery для отправки данных, когда пользователь нажимает кнопку Like.
Примечание: вы можете использовать скрытый вводимый текст, чтобы получить идентификатор вашей кнопки. В моем случае я беру его из самого URL-адреса в "var fbl_id = h_fbl [4];" потому что есть пример идентификатора: url: http://mywebsite.com/post/22/some-tittle
поэтому я анализирую URL-адрес, чтобы получить идентификатор, а затем вставляю его в свою базу данных в файле like.php. Таким образом, вам не нужно запрашивать разрешения, чтобы узнать, нажимает ли кто-нибудь кнопку «Нравится», но если вы хотите знать, кто ее нажимает, разрешения необходимы.
источник