Facebook Open Graph APIを使用してホームページに投稿を表示するコードがあります。もともとは以前の開発者によって開発されたもので、ASP.NET MVCでホームページ用に書き直しました(以前はiframeにロードされたと思われるPHPでした)。そのとき、私に残されたアプリIDとシークレットを使用しました。これは数年間うまく機能しました。今日の午後、「Facebookプラットフォームに加えた変更により、非アクティブなアカウントに対してこのデータへのアクセスが一時的に無効になっています」というエラーがサイトに戻ってきました。
汗かいていない。 IDとシークレットを更新するだけでいいと思いました。残念ながら、そのアプリIDを制御していたユーザーIDを覚えている人はいないようです。汗かいていない。自分で作ります。残念ながら、投稿にアクセスするために使用するIDとシークレットは、まったく仕事に関係のないページ上の自分の投稿でも、同じアクセスエラーを返します。名前や表紙などのフィールドを取得できますが、投稿をリクエストするとすぐにエラーが表示されます。
これが私がやろうとしていることの例です:
https://graph.facebook.com/MyCompanyName?fields=cover,name,likes,link,posts.limit(5){created_time,message,link,type,full_picture,picture,source,icon}&access_token=bunchofnumbers|bunchofnumbersandletters
https://developers.facebook.com/status/issues/205942813488872/ のステータスポストを知っていますが、新しいappIDを作成することさえできないため、何か間違ったことをしているに違いないと思います。投稿を取得します。
Facebook Graph APIでアカウントがアクティブでないと表示されるのはなぜですか?
ありがとう。
この記事を読んでください:
Mark Zuckerbergは、Cambridge AnalyticaをめぐるFacebookの「間違い」について謝罪します
ケンブリッジ大学のアレクサンドルコーガンという研究者は、アプリを使用して5,000万人以上の情報を抽出し、それを商業的および政治的使用のためにケンブリッジアナリティカに転送しました。
そのため、facebookは個人データをより安全にするためにポリシーを変更しています。
それまでは何もできません。
取得したフィールドのリストからeventsを削除することで、ウェブサイトの問題を解決しました
プラットフォームでこのエラーメッセージが表示されるようになりました。すべてが結びついているいくつかのことが起こっていると思います:
fields
パラメーターで求めているものが(myCompany
またはaccess_token
FBがアクセスするためにあなたの会社/アプリ/ユーザーとの「アクティブな」ファーストパーティ/直接の関係を持たなければならないと考えている関連アイテムにアイテムを使用しています)。これが、やや不可解な「non-active accounts
」が言及されている理由です。彼らは本当にそれが「あなたやあなたのアプリに対してアクティブではない」ことを意味していると思います。リクエストしたfields
のどれが間違っているのかはわかりませんが、試行錯誤の結果、あなたはそれに導かれます。私たちにとっては明らかでした。ユーザーがアクセスできるすべてのグループのメンバーを求めていました。私たちはそれを必要としなかったので、それを切り取り、エラーはなくなりました。
現在、Facebook Open Graph APIを使用しています。そして、私が管理しているグループのメンバー(およびその基本情報)にアクセス/取得しようとするたびに、このエラーが発生していました。
{
"error": {
"message": "(#200) Access to this data is temporarily disabled for non-active accounts due to changes we are making to the Facebook Platform",
"type": "OAuthException",
"code": 200,
"fbtrace_id": "Byueyj6MtkoIx"
}
}
試行錯誤の最中に、@ JoshChristyは望みどおりの結果を得ていました!そして、数時間の調査の後、facebookでかなり活発に活動しているので、facebookは「非アクティブ」と「アクティブ」としてアカウントを認識していることを発見しました。したがって、このエラーが発生している場合、facebookに対して十分にアクティブではないことを意味します;)
私の理解では、実稼働アプリではない場合、特定の理由で制限されているということです。ケンブリッジリークによるものか、Instagram APIのアップグレードによるものかは不明です。
私も同じエラーを受け取りましたが、テストしている場合は、グラフAPI Explorerトークンをアプリにハードコーディングしてテストを続行できます...
var data {
'accessToken': 'EEAC...',
}
FB.api('/' + id, getData, data, (_response) => {
console.log(_response);
});
私にとっては、「名前」というフィールドを1つだけ残せば機能します。 「リンク」フィールドや「イベント」フィールドを追加すると、エラーが返されます
この問題がありました。自動的に解決されます。 Facebookの問題だと思います。
以下の方法でFacebookページアクセストークンを取得できました。
既に持っているの場合、FacebookがAPIの機能強化を完了するまで、レビュー済みのアプリは一時的な修正としてそのアプリの詳細を使用できます。つまり、関連するリダイレクトURIをレビュー済みアプリに追加し、そのアプリのアプリIDとアプリシークレットを使用する必要があります。
これはページのフィードとリードを取得するために機能しますが、会話を取得できませんでした。また、私が要求した権限は{scope: 'ads_management、ads_read、manage_pages'}
この例では、たとえば、次のように使用してページIDを持つページaccess_tokenを取得しました。
this.call('v2.12/'+pageid, 'GET', {fields: "access_token"}, token)
あなたが言及したエラーで終わった。
しかし、私たちは通常のアプローチを取り、すべてが順調になりました。 https://developers.facebook.com/docs/facebook-login/access-tokens#pagetokens
私も気づいたのと同じことで、データをブロックしていても、リードジェネレーション広告を実行し続け、課金してくれました。
幸いなことに、広告マネージャーに直接アクセスすると、CSV/XLSファイルをダウンロードできます。