【问题标题】:PHP OAuth errors handlingPHP OAuth 错误处理
【发布时间】:2018-10-06 02:20:54
【问题描述】:

我正在使用 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 或 重定向)

任何想法如何在出现任何错误的情况下继续运行该功能?

【问题讨论】:

  • “我在数组中运行这段代码”是什么意思?
  • @ErwinMoller 我认为他在 batch 中运行它。
  • 发布更新,我的意思是它在 foreach 上运行多次。错误只会停止整个循环。
  • 好的,谢谢,现在清楚了。您是否收到可能是错误的异常? (这可能会造成混淆,具体取决于您的 PHP 版本。)尝试捕获每个异常捕获 (Exception $e) 以供初学者使用。如果这没有帮助,请注册您自己的错误处理程序,并查看是否可以捕获它。
  • 转储 $e 并没有给我任何东西,我猜代码甚至没有去捕获部分,它只是在我使用 $oauth->fetch 向 URL 发出请求后就死了

标签: php api oauth oauth-2.0 etsy


【解决方案1】:

问题在于错误引导本身。

上需要反斜杠
catch (\OAuthException $e) {
}

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多