6

私は本当に混乱しています。

私は自分のサイトで非常に単純なFacebookプラグインのいくつか、特に基本的な「いいね」ボタンを使用しようとしています。

限定版をiFrameで使用する方法はすでに知っています。

しかし、今私はXFBMLメソッドを理解しようとしています。オンラインドキュメントは、あなたがすでに知っていることについて多くの仮定をしていて、実際の例が本当に不足しているようです。たとえば、JavaScript Initを呼び出して、要素fb:like ...のHTMLコードを1行表示する方法を示していますが、顔の表示/非表示、デフォルトのフォントの設定などの例は見当たりませんでした。 .iFrameコードのように。

それ以来、要素に属性としてそれらを追加する必要があることがわかりましたが、それはStackOverlfowのおかげであり、Facebookのドキュメントのおかげではありません。

<fb:like href="http://mydomain.com" show_faces="true" action="recommend" colorscheme="light" width="400" height="35" />

さて、XFBMLコードを使用すると、ログインしているかどうかに応じて、高さが自動的に拡大/縮小するはずです。

最初に高さを「80」に設定することになっているのか、それとも自動的に行われるのかわかりません。

また、Initスクリプトの「アプリID」に何を使用するのかわかりません。アプリはありません...Facebookの会社のページだけです...では、ウェブサイトに「いいね」ボタンを配置するだけでアプリIDが必要になるのはなぜですか?

<script>
window.fbAsyncInit = function() {
  FB.init({
    appId: 'your app id',
    status: true,
    cookie: true,
    xfbml: true
  });
};

これらの問題についての啓蒙をいただければ幸いです。

ありがとうございました!

4

3 に答える 3

16

髪の毛を全部抜いた後、自分の質問に答えて…

http://developers.facebook.com/docs/guides/web/

「JavaScriptSDKでは、ウェブサイトをFacebookに登録して、アプリID(またはappId)を取得する必要があります。appIdは、ユーザーとウェブサイトの間に適切なレベルのセキュリティを確保するためのサイトの一意の識別子です。次の例は、appIdを取得したらJavaScriptSDKをロードする方法を示しています。」

http://developers.facebook.com/setup/

そのページ/フォームのタイトルは「アプリの作成」です。彼らがより一般的な用語を使用しない理由はまだわかりません。私は「アプリを作成する」のではなく、自分のWebサイトをアプリとは見なしていません。

于 2011-04-07T01:22:06.040 に答える
1

私はappIdを持っていませんが、同様のコードジェネレーターからこのコードを取得しただけで、ローカル環境で機能しているようです(localhost:8000を使用していますが、まだ136のいいねがあります)。ボタンを押すと、期待どおりにFacebookログインポップアップが表示されます。

<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

<fb:like href="url here (optional)" send="true" width="450" show_faces="true"></fb:like>
于 2012-07-03T21:04:03.167 に答える
0

できるよ...

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://ogp.me/ns/fb#" >

...

window.fbAsyncInit = function() {  
FB.init({
  // appId      : 'none', // App ID
  cookie     : true, // enable cookies to allow the server to access the session
  xfbml      : true  // parse XFBML
});

FB.Event.subscribe('edge.create', function(href, widget) {  
            var ss=href;
            if (ss.match(/myWebSite/i)) {
                    alert('You just liked me');
            }
});
};  

(function (d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "https://connect.facebook.net/en_GB/all.js#xfbml=1";
  //js.src = "https://connect.facebook.net/en_GB/all.js";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

...

<fb:like ref="core" class="fb-like" data-href="http://www.mySite.com" 
data-send="false" data-layout="button_count" 
data-width="50" data-show-faces="false" data-colorscheme="dark"></fb:like>

上記は機能しますが、あなた自身のように、そしてFacebookがFacebookに登録されたサイト(spashページ、#followers、#talkingなど)で実際のいいねをどのように分割するかに注意してください。(サイトは、少なくとも、増加するカウンターを取得します)。それは、「いいね」されるという目的をまったく打ち負かします。私は間違っているかもしれませんが、後者についてのメッセージすら投稿していないと思います。

Facebookの電話番号が足りなくなったので、これは残念です:)

そして、少なくとも私にとっては、もっと大きな問題があります。あなたがあなたを好きなことに対して誰かに報酬を与えるつもりなら、これはjsであるため、あなたは彼らがそうしたことを本当に確信することはできません。報酬ページにjsリダイレクトしようとすると、ユーザーはそのURLを切り取って貼り付けることができます。rndセッション変数を設定してjsに渡し、jsをそれを使用してphpページにリダイレクトすることもできますが、ユーザーはそれを理解することもできます。

あなたはそうすることができない(またはappIdをコメントアウトする)...

require 'face_sdk/face/src/facebook.php';
$facebook = new Facebook(array(
  'appId' => '',
  'secret' => '',
));
$user = $facebook->getUser();

したがって、直接phpの方法はないようです。私は、iframed LikeボタンのURLをphpに渡し、simple_html_dom.phpで解析し、2つのメインdivのどちらがクラス「hidden_​​elem」を持っているかを見つけて遊んでいました。しかし、結局のところ、Facebookはあなたを二級市民のように扱うので、それだけの価値はありません。

于 2013-02-26T22:33:35.917 に答える