2011-07-23 26 views
3

私はhttps://www.facebook.com/xxxxのFacebookページとhttp://xxxx.comのWebサイトを持っています。実際のWebサイトの新しい投稿に対応するようにFacebookのステータス更新を行うにはどうすればよいですか?その更新は、私の個人的なFacebookアカウントではなく、ページによって作成される必要があります。Facebookページに投稿するには?

これは重複した質問ですが、私を聞いているように見えるかもしれません。私はこれを何時間も働いてきました。私はこのトピックについて多くの助けを見つけましたが、そのすべてが不完全であるか期限切れです。ほとんどの回答は私が何をする必要があるかを教えてくれますが、それを行う方法は教えてくれません。

私が探しているものに最も近いことは、公式ドキュメントのこのメモです。

https://developers.facebook.com/docs/opengraph/#publishing

は、ここで私はこれまで行うことができましたものです。私はFacebookのページを作成しました。私はFacebookのアプリケーションを作成しました。私はそのページにアプリを追加しました。私は自分の個人アカウントにアプリを追加し、それにmanage_pages権限を与えました。私はページのユーザーの観点からそれを許可することをmanage_pages許可したが、それは可能ではないようだ。

私は、アプリケーションのアクセスキーを取得するためにこれを使用することができます:

curl -s -F grant_type=client_credentials -F client_id=APPID -F client_secret=APPSECRET https://graph.facebook.com/oauth/access_token 

は、その後、私は実際にステータスの更新をするためにこれをやろう。

curl -s -F access_token=ACCESS_TOKEN -F message='test' https://graph.facebook.com/xxxx/feed 

これは、ユーザーがこの操作を実行するアプリケーションを承認していないというメッセージを返します。私は、私が個人的なユーザーではなくページのユーザーとして投稿しようとしているからです。

ページの投稿者としてページに投稿するための正しいアクセスキーを取得するにはどうすればよいですか?また、アクセスキーが期限切れにならないようにするにはどうすればよいですか?アクセスキーを取得したら、実際に投稿を作成して正しい場所に表示するにはどうすればよいですか?

+2

私は自分のブログで100%完全なチュートリアルを書いています。 http://www.apreche.net/tutorial-programatically-post-a-status-update-to-your-facebook-page/ – Apreche

答えて

3

ここでは、manage_pages権限がどのように機能しますか。

  • ボブにはAwesemoというページがあります。
  • Bobは、UltraPageManager5000から まで自分のページを管理します。
  • ボブはUltraPageManager5000がUltraPageManager5000にmanage_pagespublish_stream、および(普通の接続アプリなど)offline_access権限を付与し、セットアップを持っているページに移動します。 offline_accessを要求する必要があります。そうしないと、アクセストークンの有効期限が切れます。
  • UltraPageManager5000にBobのアクセストークンがありますが、彼のページにはアクセストークンがありません。 UltraPageManager5000は彼のページのいずれかで何かをしたいときに
  • は今、彼らはhttps://graph.facebook.com/uid/accounts/?access_token=bobs_access_tokenに移動し、適切なアクセストークンを取得するには、「恐ろしい-O」のページを探してください。

私はあなたのために、この少しを簡素化する方法を作りました。

function get_page_access_token($page_id, $access_token, $user_id) { 
    $data = file_get_contents('https://graph.beta.facebook.com/'.$user_id.'/accounts?access_token='.$access_token); 
    $pages = json_decode($data,true); 
    foreach($pages['data'] as $page) { 
     if($page['id'] == $page_id) { 
     return $page['access_token']; 
     } 
    } 
} 

実際のアクセストークンを取得すると、次のHTTP POSTが実際にステータス更新を作成します。

curl -F access_token="the token you got for the page from the command above" \ 
-F message="the status update you want to post" \ 
https://graph.facebook.com/PAGE_ID/feed 
+0

さて、私はそれをすべて行い、特定のページのアクセストークンを取得しました。しかし、私はこのcurl -F access_token = "thetoken" -F message = "testing" https://graph.facebook.com/pageid/feedのようなステータスアップデートを投稿しようとしました。私はoffline_accessとmanage_pagesを与えたが、このアクションを実行するために。 – Apreche

+0

気にしないで、publish_stream権限も必要でした。 – Apreche