0

ruby スクリプトと Koala gem を使用して、1 日 1 回 Facebook に投稿したいと考えています。一度設定すれば、アクセス トークンを変更し続ける必要がなくなります。アクセストークンに関するいくつかの投稿とFacebookのドキュメントを読んだ後、私は以下を実装しました:

  • Facebook アプリを作成しました
  • Graph API Explorer を使用して自分用のアクセス トークンを取得しました - これは約 2 時間しかかかりません
  • 次のスクリプトを使用して、短期トークンを 2 か月間有効な長期トークンに交換しました。
https://graph.facebook.com/oauth/access_token?             
    client_id=APP_ID&
    client_secret=APP_SECRET&
    grant_type=fb_exchange_token&
    fb_exchange_token=EXISTING_ACCESS_TOKEN
  • Facebook ウォールに投稿する次のレーキ タスクを作成しました。
トークン = "CAAFlZAPhVBO8..."
@graph = コアラ::Facebook::API.new(トークン)
@graph.put_connections("me", "feed", :message => "私のメッセージ!")

このセットアップのすべてで、私のスクリプトは実際に機能します! スケジューラに基づいて、毎日ウォールに書き込みます。

私の質問は次のとおりです。このセットアップでは、グラフ API エクスプローラーを使用して手動で新しい短期アクセス トークンを作成し、それを使用して 2 か月ごとに長期アクセス トークンを取得する必要があります。また、y スクリプトの token = "blah blah" ステートメントを手動で変更する必要があります。これはまったく回避できますか?作成したアプリにウォールへの投稿を許可しました。Koala (または他の gems/libs) を使用して、スクリプト内で新しいアクセス トークンを自動的に取得する方法はありますか?

4

2 に答える 2

0

ユーザーがアプリに publish_actions パーミッションを付与したら、アプリ アクセス トークンを使用して、そのユーザーの名前でウォール投稿を公開することもできます。me実際のユーザー ID と交換するだけで済みます (ユーザー アクセス トークンがないと API は認識できないため)。 「私」が誰であるべきか)。

この組み合わせapp_id|app_secret(真ん中のパイプ記号) は、アプリ アクセス トークンとして機能します。

于 2013-10-07T19:31:49.490 に答える
0

短期トークンはハードコーディングせずに自動化できます。omn​​iauth-facebook gem を使用して、omniauth ログインを自動化できます。Githubを参照してください。これを gemfile に追加します。

 gem 'omniauth-facebook', '1.4.0'

構成ルートでは、コールバックを一致させます

match '/auth/:provider/callback' => '[your controller]#[your function]'

ログインに成功してコールバック関数にたどり着くと、応答にトークンが格納されます。request.env["omniauth.auth"]["credentials"]["token"]

Use this token and exchange it with a long-livet token every time the user login. ユーザーが長期アクセス トークンの 60 日間の上限内に少なくとも 2 回ログインすると安全に想定できます。

Koala gem を使用しているため、Ruby on Rails を使用していると思います。

于 2013-10-11T17:14:53.560 に答える