web-dev-qa-db-ja.com

Graph APIは、公開Facebookページにアクセスして「false」または「サポートされていないgetrequest」を返します

いくつかのファンページで問題が発生し、Facebook GraphAPIで詳細を取得しています。

ファンページの詳細を取得しようとすると、GraphAPIはfalseのみを返しましたが、現在は

{
    "error": {
        "message": "Unsupported get request.",
        "type": "GraphMethodException",
        "code": 100
     }
}

これは、すべてのFacebookページの状況ではありません。

たとえば、 このページ の詳細を https://graph.facebook.com/CaptainMorganMacedonia で取得しようとすると、エラーが返されるだけです。

このページは公開されており、25人以上のファンがいますが、ページの詳細を取得するのにまだ問題があります。それはFacebookの問題ですか、それともページの構成が悪いですか?

21
Pece

ページがアルコールゲートであると仮定すると(OPの例では、ページはアルコールページでした)、アルコール制限を満たすユーザーのアクセストークンを使用してページにアクセスする必要があります。

特にアルコールの場合、21歳以上のユーザーなら誰でもこれを行うことができ、一部の市場ではそれよりも低くなります(その市場での飲酒年齢によって異なります)。

一般的なケースでは、ページの表示に人口統計(国または年齢)の制限がある場合、アルコールの理由で制限されている場合、または非公開の場合、ページまたはアプリのアクセストークンは、そのページの詳細またはフィードにアクセスしようとしても機能しません。

あなた必須ページを表示する権限を持つユーザーのユーザーアクセストークンを使用します。

ユーザーがページ管理者によって設定された制限を満たしていない場合、falseが返されました。

これは(2012年9月以降)テキストUnsupported get request.およびコード100のOauthExceptionに置き換えられました。

これはキャッチオールエラーであり、通常、プライバシーチェックが失敗したことを意味します。ページの場合、原因はほぼ確実に、ページが未公開であるか、特定の国または年齢層にゲートされているか、アルコールページとしてマークされていることです。

33
Igy

写真は千の言葉の価値があります。

これらの設定の1つでも変更した場合:

Facebook Page Settings

これは、クライアントが受け取る応答です。

{ "error": {
      "message": "Unsupported get request.",
      "type": "GraphMethodException",
      "code": 100
   }
}

実際、「年齢制限」を変更してみましたが、「誰でも(13)」以外の設定で問題が発生します。

12
freedev

私はこの問題を抱えていましたが、問題を引き起こしているのは国の制限でした(私が正しい国にいたとしても)。それを削除すると問題が解決しました。閉塞の原因となる可能性があるため、無関係と思われる制限があるかどうかを確認してください。

3
Andu

リソースにアクセスしようとすると、GraphAPIがfalseまたは空のデータを返すようです制限されています。たとえば、Facebookファンページの管理者は、年齢でアクセスを制限できます(これには、アルコールに関するページの特別な設定が含まれます)。

年齢制限を選択すると、指定された年齢未満のユーザーは、検索や友達のプロフィールでページを見つけたり、他の方法でコンテンツを表示したりできなくなります。これは、ログアウトしたユーザーがあなたのページを見ることができないことも意味します。

アルコール関連の年齢制限は、ユーザーの場所に基づいて最低年齢を設定します。カナダ、韓国、ニカラグアで19歳以上、日本、アイスランド、パラオで20歳以上、カメルーン、ミクロネシア、パラオ、ソロモン諸島、スリランカ、米国で21歳以上、インドとスウェーデンでのみユーザーは25歳以上で、18歳以上の人はあなたのページを見ることができます。アルコール関連の年齢制限は便宜上のものであり、Facebookは、その設定を使用することにより、ページが表示されるすべての国で法的に準拠することを表明していないことを理解します。最終的には、ページが表示される国ごとに、法律に準拠した適切な年齢制限を設定する責任があることを理解しています。

また、国ごとにアクセスを制限することもできます。

1つ以上の国を入力してから、リストされた国のユーザーにページを表示するか非表示にするかを選択します。 1つ以上の国を入力すると、ログアウトしたユーザーはあなたのページを見ることができなくなります。国がリストされていない場合、ページはすべての国にいる人々に表示されます。ページのコンテンツが表示を許可する国に適切であることを確認するために、適切な国の制限を設定する責任があることを理解している

たとえば、Facebookにログインしていない場合、 このページ は表示されません(Facebookのホームページにリダイレクトされます)。そして、これはGraphAPIでも同じです。呼び出し:

http://graph.facebook.com/105226926239

戻ります:

false

ただし、serアクセストークンを取得でき(たとえば、 Graph API Explorer から)、対応するプロファイルがこのページで定義されている制限に一致すると仮定すると、次のようになります。

https://graph.facebook.com/105226926239?access_token=AAACEdEose0cBACIijRIMtayOiN5F58x6DxolYi8ezmpAIPORApnfQvG5Kj1ftOQhSzIgxkNxQiu4iBwozqRT3zTvswEvm0O0JobZC8AZDZD

戻ります:

{
   "id": "105226926239",
   "name": "CodeReduc.com",
   "picture": "http://profile.ak.fbcdn.net/hprofile-ak-snc4/71056_105226926239_2230111_s.jpg",
   "link": "http://www.facebook.com/pages/CodeReduccom/105226926239",
   "likes": 1,
   "category": "Local business",
   "is_published": true
}

残念ながら、この情報を取得するためにapplicationアクセストークンを使用することはできません。これは、場合によっては役立ちます。

3
Stéphane

上記のすべての回答に加えて、「ソーシャルディスカバリー/アプリがニュースフィードに表示される」設定を有効にすると、この問題が発生するわけではありません。

0
Jacek Lampart

Y [設定]-> [連絡先メールアドレス]で解決しました:入力します。次に、[ステータスとレビュー]に移動し、[このアプリとそのすべてのライブ機能を一般に公開しますか?]に配置します。ページ上部のオプション。

また、年齢制限+13と国が設定されていないことを確認してください。

0
Mikel Sanchez