1. ホーム
  2. スクリプト・コラム
  3. その他

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

2022-01-11 21:15:06

質問

Facebook Graph APIを使ってインターフェースを開発しているのですが、位置情報を持つ投稿に対して、以下のようなクエリ文字列を実装する必要があります。
/me/feed?field=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);
}