Facebookアプリケーションを作成しています

Facebookは、アプリケーションを作成できる人気のソーシャルネットワークです。 私はモルタルで水を砕くのが好きではないので、すぐにポイントに。 Facebookの外部アプリケーションまたは外部アプリケーションのFacebookデータ(別名Facebook Connect )の2つの方向に埋め込むことができます 。 ここでは、原則としてより時間がかかり、興味深い、最初のものについてお話します。 原則として、facebookアプリケーションの意味には2つの機能があります。友人との対話とユーザープロファイルへの有益な統合です。

基本


次の場所にアプリケーションを埋め込むことができます..

統合は混合機能によって行われます ..

双方向


基本的な用語が明確になったので、Canvasでホストされているアプリケーション自体に移りましょう。 開発者アプリを使用して新しいアプリケーションを作成し、 PHP用のRESTライブラリをダウンロードし、Webサイトにアプリケーションを配置し、CanvasのURL設定にインストールすると、 iframe (+ XFBML)またはfacebookに保存される純粋なFBMLを介して起動する2つの方法があることがわかります。 もちろん、最初のオプションが最も簡単です。 プログラムを作成し、プロファイルに追加/確認した後、Canvasディスプレイには、fb_sig_canvas_userが最も重要な接頭辞fb_sig_を持つ通常のiframe + GETパラメーターが付随します。 2番目のオプションはより退屈ですが、FBにより密接に関連しています。




権利


ここで、アプリケーションが原則として何をするかについて考える必要があります。 私の場合、これはクイズテストです。ユーザーが質問に答えると、最後にプロファイルウォールにステータスが表示されます。
まず、データを受信するためのユーザー確認( Authorization )が非常に有用であることがわかります。これはメソッドによって呼び出されます
Facebook :: require_loginとユーザーにとってはウィンドウのように見える
権利の譲渡。 Wall(Newsフィード)にデータを公開するためのドキュメントで大騒ぎしたため、 Feed.publishTemplatizedActionメソッドがありますが、廃止されたことが判明しました。 別の方法はStream.publishで 、次に2番目の重要なトピックである拡張アクセス許可に 進みます。


権限がなければ、リクエストは致命的なエラーを受け取ります。 プログラムがプロファイルをより深くアクセスできるようにするため
ユーザー、後者はダイアログでこれを個別に確認する必要があります
ウィンドウ。 このダイアログを呼び出して、壁にメッセージを投稿したり、
ユーザーステータスの変更はそれほど簡単ではありません。
$facebook->api_client->stream_publish("My new status");
Uncaught exception 'FacebookRestClientException' with message 'The user hasn't authorized the application to perform this action' i
少し微妙になりました-ウィキとフォーラムのドキュメントは大いに疑って読んでください。
古いコードがあります(たとえば、代わりに特権の名前/メソッドstream_publish
publish_stream)。 特権をチェックするメソッドは、テストAPIコンソールを含む、パラメーターの致命的なエラーまたは理解できないサブスクリプションのいずれかを提供します
if($facebook->api_client->users_hasAppPermission("publish_stream")){
//
}


FBML誘惑


この時点で、FBMLモードの利点(同様のインターフェイスとサポートされているFBMLタグを強制する)が明らかになります。 それは私のために働いた

xFBML


この方法でiframeを使用する権利にはバグがあることは明らかです。Facebookと別々の両方で一緒に暮らしたいです。 このために、Facebook javascriptによって解釈されるxFBMLタグがあります。 必要なアプリケーションで必要な合計:
  1. 接続javascript static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php
  2. xd_receiver.htm作成します
  3. APIキーで初期化する
  4. FacebookのConnectアプリケーションの設定でルートへのパスを指定します

今、あなたは権利を求めることができます

FB.Connect.showPermissionDialog('publish_stream');

ロストクッキーロバ


ここでIE 6/7について言及せずに歩き回ることはできません。 実際、これらのブラウザーのiframeはデフォルトでセッション変数を失います。 簡単に言えば、iframeは「信頼できない」コンテンツと見なされ、ステータスバーに目が表示されるため、Cookieはサーバーに到達しません。 これを詳細に理解しているなら、プライバシーの好みのためにW3Cプラットフォームの形でこれの正当化があります 。 タイトルを追加する方が簡単です。
header('P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"'); //for IE6/7
最終的に、アプリケーションはプロファイルを正常に更新しました(添付ファイルを介して写真を押し込むことができました)

ヒラー


オリジナル

Source: https://habr.com/ru/post/J64663/


All Articles