首页 > 解决方案 > PHP OAuth 错误处理

问题描述

我正在使用 OAuth 库连接到 Etsy shop API。代码如下所示:

foreach ($transactions as $transactionSingle) {
    try {
        $oauth = new OAuth('xxx', 'xxx',
            OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_URI);
        $oauth->setToken($access_token, $access_token_secret);

        $data = $oauth->fetch("https://openapi.etsy.com/v2/users/".$transactionSingle['buyer_id']."/profile", null, OAUTH_HTTP_METHOD_GET);
        $json = $oauth->getLastResponse();
        $results = json_decode($json, true);
    } catch (OAuthException $e) {
        return null;
    }
}

现在的问题是我在 foreach 上多次运行此代码,如果此 URL 错误并且无法获取任何数据 - 整个函数将停止并且不再继续。在将旧用户 ID 传递给 URL 并且 $oauth->fetch 只返回消息之前,它可以正常工作:

无效的身份验证/错误请求(收到 404,预期 HTTP/1.1 20X 或重定向)

尽管有任何错误,任何想法如何继续运行该功能?

标签: phpapioauthoauth-2.0etsy

解决方案


问题在于错误引导本身。需要反斜杠

catch (\OAuthException $e) {
}

现在,如果在 catch 中没有提供代码,代码会捕获错误并继续。


推荐阅读