1

私はFacebookアプリケーションの開発にまったく慣れていません。「ページの壁にメッセージを投稿する方法は?」と一日中遊んでいました。私はついに成功しましたが、各メッセージは「GraphAPIExplorer経由」で届きました。アプリケーション名に変更する方法を見つけようとしましたが、うまくいきませんでした。apiコマンドでアプリケーションの値を強制できるかどうかを確認しようとしましたが、それが考慮されていませんでした。多分私は何かが恋しいです:(誰かが助けることができれば、それは素晴らしいでしょう!


私はまだかなり混乱しています。私がやりたいことを説明しようと思います。Webサイトで(ある種の議題で)定義されたイベントを(ページとして)ページに自動的に公開したいと思います。私が見逃しているのは、Facebook側ですべてがどのように連携しているかです。1。ログインプロセス:アプリケーションはcronで実行されるため、ログインダイアログボックスは表示されません。2.アクセストークン:アプリケーションまたはページ1?3.権限:私の理解では、manage_pages(およびpublish_stream)が必要ですが、これをどのように設定するかが明確ではありません。

明確化のためのThxとおそらく明確な例:o)

4

2 に答える 2

2

ユーザーは、ログインフローの1つを使用して独自のアプリを承認し、公開権限の1つを付与する必要があります-

投稿に「グラフAPIエクスプローラー経由」と表示されている場合、アプリでは、独自のアプリで作成されたものではなく、グラフAPIエクスプローラーツールを使用してAPIをテストしたときに取得したアクセストークンを使用しています。

于 2012-10-19T17:20:16.550 に答える
2

OK私はついにそれを行う方法を見つけたと思います。アプリケーションアクセスコードではなく、ページアクセスコードが必要でした。トークンは、アプリケーションの外部で長寿命として生成する必要があります。

  • 以下を使用してコードを取得します。

https://www.facebook.com/dialog/oauth?client_id={app_id}&redirect_uri={my_url}&scope=manage_pages,publish_stream

app_idはアプリケーションIDですmy_urlはアプリケーションのURLスコープは付与する権限です

リダイレクトされたURLには、コードパラメータがあります。それをコピーします。

  • 以下を使用してユーザーアクセスコードを生成します。

https://graph.facebook.com/oauth/access_token?client_id={app_id}&redirect_uri={my_url}&client_secret={app_secret}&code={code}

app_secretは、アプリケーションのシークレットキーコードです。ステップ1のコードです。

出力としてユーザーアクセストークンを取得します。これは短命です。

  • 以下を使用して、ショートライブをロングライブのユーザーアクセストークンに変換します。

https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id={app_id}&client_secret={app_secret}&fb_exchange_token={short live access token}

「ショートライブアクセストークン」を手順2で取得したものに置き換えます。出力として無限のユーザーアクセストークンを取得します。

  • ページアクセストークンを取得します(ユーザーアクセストークンも無限アクセストークンになっているため、これは無限アクセストークンになります):

https://graph.facebook.com/me/accounts?access_token={infinite user access token}

「無限ユーザーアクセストークン」を手順3で取得した値に置き換えます。

このコマンドは、管理するすべてのページを一覧表示します。出力には、フィールド「access_token」に必要なページアクセストークンが含まれています。このトークンは、アプリケーションの任意のAPIコマンドで使用できます。

アプリケーションの秘密鍵は「秘密」のままである必要があるため、サーバー側のプログラム(私にとってはPHP)を介してこれらすべての手順を実行するのが最善です。

于 2012-10-20T09:27:15.813 に答える