サーバーによってx分ごとに更新されるColdFusionWebページがあります。このスクリプトは、さまざまなフィード(Facebook、YouTube、および内部ニュースアイテム)をチェックし、時系列でマージされたフィードを作成します。Facebookの部分は、Facebookのファンページから投稿データを取得するだけです。アカウントからアプリを認証するときに提供されるOAuthトークンを使用してこれを行うことができます。
トークンは数ヶ月ごとに期限切れになるか、私が思うに何か。それはかなり長い間続きます、そして私はアプリを自動承認する方法がないことを読みました。しかし、私はこれらの更新トークンなどについて読み続けていますが、それらがどのように機能するかを明確に把握することはできません。
スクリプトでFacebookからJSONデータを取得しようとしています。トークンの有効期限が頻繁に切れる場合は、再度リクエストしてください。ただし、graphs.facebook.com / oauth/authorizeリンクをもう一度押すだけではうまくいかないようです。何かを承認するには、明らかにログインする必要があるためです。
とにかく、トークンサーバー側を内部的に再承認または更新できますか?このFacebookアプリ、サイト、およびFacebookユーザーはすべて完全に内部です。以前はFacebookページのRSSフィードがありましたが、Facebookは常に変更を加えており、現在は表示されていません。
私が本当に必要としているのは、Facebookの会社ページのタイムライン/フィードからのデータだけです。
解決策や提案があれば役に立ちます。
回答:これは、コンテンツに基づいてデータを取得するために使用することになったものです。以下はトークンを取得し、次にトークンを使用してフィードデータを取得し、それを構造体に配置します。これは最も簡潔な方法ではないかもしれませんが、機能します。
<cfhttp url="https://graph.facebook.com/oauth/access_token?client_id=[CLIENTID]&client_secret=[CLIENTSECRET]&grant_type=client_credentials&redirect_uri=[URL] "
result="AccessHTTP" />
<cfset token = replace(AccessHTTP.Filecontent,"access_token=", "", "ALL")>
<cfhttp result="result" url="https://graph.facebook.com/[USERNAME]/posts?access_token=#token#" ></cfhttp>
<cfset Facebook = deserializeJSON(result.filecontent).data />