1. ホーム
  2. javascript

[解決済み】Facebook Graph API のクエリで with=location を使用すると "Uncaught (in promise) undefined" というエラーが発生する。

2022-01-01 18:59:33

質問

現在、Facebook Graph APIを利用したWebアプリケーションを開発しています。

現在の目標は、位置情報を持つ投稿のみを取得することです。

位置情報のある投稿とない投稿の取得はすでに動作していますが、位置情報のある投稿のみを取得することができません。

両方のタイプを取得するクエリは次のようになります。 '/me/feed?fields=id,name,message,picture,place,with_tags&limit=100&with=location'

位置情報を持つ投稿のみを取得するクエリは次のようになります。 /me/feed?fields=id,name,message,picture,place,with_tags&limit=100&with=location

問題は、パラメータ &with=location というエラーが発生します。 Uncaught (in promise) undefined という部分があります。

if (response.paging && response.paging.next) {
    recursiveAPICall(response.paging.next);
  } else {
    resolve(postsArr);
  }
} else {
  // Error message comes from here
  reject();
}

ログには以下のように表示されます。

DEBUG: -------------------------------
DEBUG: Ember             : 2.4.5
DEBUG: Ember Data        : 2.5.3
DEBUG: jQuery            : 2.2.4
DEBUG: Ember Simple Auth : 1.1.0
DEBUG: -------------------------------
Object {error: Object}
  error: Objectcode: 
    code: 1
    1fbtrace_id: "H5cXMe7TJIn"
    message: "An unknown error has occurred."
    type: "OAuthException"
    __proto__: Object
  __proto__: Object
Uncaught (in promise) undefined

どなたか解決策をお持ちの方はいらっしゃいますか?

コードがどのように見えるかについては、私の 前の質問 .

解決方法を教えてください。

エラーはエラーがあることを教えてくれますが、それをキャッチすることはできません。このような場合、どのようにすればよいのでしょうか。

getAllPosts().then(response => {
    console.log(response);
}).catch(e => {
    console.log(e);
});

また、単に console.log(reponse) をAPIコールバック関数の先頭に置くと、その中に確実にGraph APIからのエラーメッセージが含まれます。

詳細はこちら https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch

あるいはasync/awaitで。

//some async function
try {
    let response = await getAllPosts();
} catch(e) {
    console.log(e);
}