Кнопка «Нравится» Facebook и получение UID пользователей в URL ссылки - PullRequest
2 голосов
/ 07 декабря 2011

Попытка демистифицировать кнопку «Мне нравится» по состоянию на декабрь 2011 года.

http://developers.facebook.com/docs/reference/plugins/like/

Есть 2 вопроса:

  1. Как включить «src»и "ref" параметр в URL, который нравится пользователю?Я понимаю, что это хорошо задокументировано, но на самом деле я не смог сделать это в своем тестировании ... приведите пример этого.
  2. Как я могу вставить UID пользователя, которому это нравится, в ссылку, котораянапример, им нравится, если им нравится http://example.com, Я бы хотел, чтобы была создана ссылка http://example.com? src = fb & ref = 1234567

Пожалуйста, укажитемне любые примеры, спасибо!

Ответы [ 2 ]

4 голосов
/ 21 декабря 2011

Я предполагаю, что у вас есть идентификатор пользователя.Вы можете указать параметр ref следующим образом (версия XFBML)

<fb:like href="http://example.com/fblikepage.php" 
     send="true" width="450" show_faces="true"
     ref="<?php echo $userid; ?>"
>
</fb:like>

никак не позволяет указать параметр src, он будет автоматически добавлен Facebook, если вы укажете параметр ref, как показано выше.URL будет выглядеть так на Facebook: http://www.example.com/fblikepage.php?fb_ref=xyz&fb_source=profile_oneline.См. Следующую часть документации:

ref - метка для отслеживания рефералов;должно быть не более 50 символов и может содержать буквенно-цифровые символы и некоторые знаки пунктуации (в настоящее время + / = -.: _). Атрибут ref приводит к добавлению двух параметров к URL-адресу реферера , когда пользователь щелкает ссылку в истории потока о действии Like: fb_ref ​​- параметр reffb_source - тип потока ('home', 'profile', 'search', 'other'), в котором произошел щелчок, и тип истории ('oneline' или 'multiline'), объединенный с подчеркиванием.

Конечно, параметр fb_source будет варьироваться в зависимости от того, где URL отображается в Facebook, и это будет сделано Facebook.Если вы хотите узнать, заходит ли пользователь через Facebook или нет, вы можете просто посмотреть, есть ли параметр fb_source в переменной $_REQUEST, примерно так:

<?php
 /* lots of code */
 if(isset($_REQUEST['fb_source'])){
   // we know the current user is visiting through some link on Facebook, so you can do whatever you wanted here
 }

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

0 голосов
/ 16 декабря 2011
  1. Как вы сказали сами, это действительно хорошо задокументировано ( здесь ) и довольно сложно объяснить более простым способом, чем в документации. Однако вот пример кнопки like (ищите параметр ref внутри строки src):

    <iframe src="//www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.example.com&amp;send=false&amp;ref=top_left&amp;layout=standard&amp;width=450&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font&amp;height=35&amp;appId=YOUR_APP_ID" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:35px;" allowTransparency="true"></iframe>
    

    Если вы спросите более конкретно, я постараюсь помочь вам.

  2. Вы должны иметь идентификатор пользователя перед загрузкой фрейма кнопки «Мне нравится». Затем вы можете вставить идентификатор в ссылку, используя скрипт на стороне сервера. A http://example.com<?php echo ( "?ref=" . $userid); ?> сделает. Вам не нужно никаких дополнительных параметров src; если пользователь кликает ссылку на ваш сайт, Facebook передаст оба значения ref в качестве параметра fb_ref ​​и параметра fb_source в URL-адресе реферера.
    Пример: http://example.com? Fb_ref ​​= top_left & fb_source = profile_oneline

    Еще раз рекомендую просмотреть документацию здесь .

    Какие проблемы были у вас во время тестирования? Не могли бы вы обновить свой вопрос с примером кода?

...