すべてのソーシャルプラグインのセットアップページに移動すると、APP IDを使用してサンプルコードを提供するようになりました。
http://developers.facebook.com/docs/plugins/
Likeボタンやその他のプラグインにAPP IDが必要になりましたか?プラグインの使用時にAPP IDが含まれていない場合はどうなりますか?
Facebook開発者ブログを確認し、 Like Button Migration について読みました。私はこれについて、または FB Like Reference のいずれかで、これに対する直接的な答えを見つけることができませんでした。
通知:
これは古い情報であり、公式Facebookの動作が変更されています。
単純に、答えはNoです。次の公式の Facebookリソース を見てください。
注意:アプリIDを必要とせずにそれを行うには、Facebookからサインアウトするときに上記のページにアクセスする必要があります。次のスクリーンショットを見てください。
- Web:Webでソーシャルプラグインを使用している場合、ソーシャルプラグインを統合するためのFacebookアプリを作成する必要はありません。
- iOS/Android:iOSまたはAndroidアプリ内でソーシャルプラグインを使用している場合、Facebookアプリを作成し、アプリ識別子に結び付ける必要があります。
公式の答えは、iOS/Androidにのみ必要だということです。
Semsemが言ったように、単純な答えは「いいえ、必要ありません」です...「いいね」ボタンに関連付けられたappIdを回避する方法があります。これを使った私の経験があります。私はFacebookやOpen Graphの専門家ではないので、YMMVです。
ボタンでappIdの使用を避けた理由:
オンラインコースを学生(顧客)に配信するサービスを提供するWebサイト(エンジン)を1つ持つサービスを提供しています。コースを学生に広めるために当社のサービスを使用するインストラクター(お客様)は、希望する方法でサイトにブランドを付け、そのコースを提供するWebサイトのセクションにドメインをマッピングできます。
簡単な例: http://courses.example.com/instructor_name からサービスを提供しますが、学生は http://www.instructors-domain。 com / 。すべてのコースは、ベースURLからサブディレクトリになります。
「いいね」ボタンをFacebookアプリに関連付けると、クロスドメインのシェナンガンは許可されません。そうすることには正当な理由がありますが、会社や製品の進化において私たちがいる場所ではうまくいきません。そのため、回避策を見つける必要がありました。
私たちは、人々がコースを「好き」になり、ネット上の適切な場所を「ストーリー」ポイントにして、いくつかのカスタマイズを取得できるようにしたいと考えました(例:「NAME like aonline courseFBAppNameで」)。基本的にこれを達成しました。進化のこの時点で許容可能と判断した機能を一部失いました。
それのショート
適切なFacebook開発者のページの指示に従って、iframeバージョンのFacebookの「いいね」ボタンを使用しました(リンクについては、リンクに関するsemesmの回答を参照してください。担当者はいません)。それらのコードスニペットを取得し、iframeのsrcのappIdクエリ文字列を手動で削除しました。
「いいね!」ページ自体(「いいね」ボタンのあるページ)で、OpenIdメタタグincludeを使用してappIdを指定しました。 (これらのタグは指定されました:fb:app_id、og:type、og:url、og:site_name、og:title、og:description、og:image。)
Og:typeは、「namespace:app_custom_object_name」という形式のカスタムタイプでした。
失敗したアプローチ
私の最初の試みは、開発者の「いいねボタン」ページの「コードを取得」セクションにある「HTML5」タブという好ましい方法として理解しているものを使用することでした。適切な場所からappIdを削除するメソッドを試しました。この方法は効果がありませんでした。
ドメインがFacebookアプリのドメインと一致しない場合、「いいね」ボタンはありません。
ドメインが一致する場合、「いいね」ボタンが表示されます。ただし、実際に何かを「好き」にするには3回クリックします。最初のクリックは、「いいね!」アイコンを、明らかな意味をなさない1つのWordを持つ通常のアンカーに変更します(Wordが何であるかを忘れていました)。 2回目のクリックで、アプリを使用するためのログイン/承認ウィンドウが表示されます。 3番目は、実際にコメントを入力できるモダンな「いいね」ボックスを表示します。この動作を回避する方法を見つけられませんでした。
適切なドメインのこのアプローチでappIdを指定した場合、期待どおりに機能しました(ただし、目的の動作とは一致しません)。
「like-button」ページの「Get Code」セクションにある他の2つのオプションは試しませんでした。
情報に基づいた憶測と噂
これに関する私の調査では、appIdを要求することがFacebookの将来の方法であるという全体的な印象があります。旧式の方法が減価されるかどうかは誰にもわかりませんが、おそらく決して決してではありませんが、この「レガシー」動作について話しているドキュメントには何も見つかりませんでした。これは、彼らの新しい製品とこの方法で利用可能になる高度な追跡で私にとって理にかなっています。
この方法で使用される「いいね」は二流の市民に似ているという提案を見てきました...いくつかの点で劣っているとして扱われます。私自身の実験では、(「like」ボタン自体で)完全に指定されたappIdの動作は、部分的に指定されたappIdとは異なり、(Open Graphクエリと限定されたFacebookテストでの可視性の点で)よりアクセス可能で予測可能であることがわかりました。 (繰り返しますが、これに関する確かな文書は見つかりませんでしたし、違いを完全に理解しようとはしませんでした。)
この情報が他の誰かに役立つことを願っています。幸運を!
私は単にappIDなしでiframeタグ内でURLコードを使用しますが、動作するようにシームします。
以下に例を示します。
<iframe src="http://www.facebook.com/plugins/like.php?href=<%=request.original_url%>&width&layout=button_count&action=like&show_faces=false&share=false&height=35&appId=" frameBorder="0" width="150" height="25">
</iframe>
コメントが言うように、sємsємメソッドを試しました。Facebookはコードを取得するためにログインすることを望んでおり、アプリがある場合は1つを選択する必要があります。
しかし、そうしないと、アプリの参照なしでコードが提供されます。
したがって、コードを取得したら(選択したアプリに関係なく)、. js URLのappIdパラメーター(&appId=##############
)、そしてあなたは得た(最新のHTML5コードのために、6行目):
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
Div要素のコードは変更されません。