代码之家  ›  专栏  ›  技术社区  ›  Phuc

Strava webhook事件数据未接收

  •  0
  • Phuc  · 技术社区  · 1 年前

    我正在做一个项目,PHP需要strava-webhook在strava用户活动发生变化时随时更新他们的数据。 我是webhook的官方文档 https://developers.strava.com/docs/webhooks/ 我遵循这个代码 https://gist.github.com/erikdmitchell/2e165c57e618de14e1b208fceba2ee65 并使webhook能够很好地调用webhook.php

    这是我在webhook.PHP上接收strava调用的PHP代码

    $html = "";
    $html = $html . '<hr/>' . json_encode($_GET) . '<hr/>' . json_encode($_POST) . '<hr/>' . json_encode($_REQUEST);
    

    以及我所有接收Strava呼叫的输出

    <hr/>[]<hr/>[]<hr/>[]
    

    我的问题是,我尝试了很多方法,但无法从strava webhook发送给我的事件数据。从我的webhook.php文件中,当strava调用它时,我看不到更多来自$_get、$_POST或$_REQUEST的信息

    至少我需要哪个用户id刚刚在strava上添加/删除/更新了他们的活动

    欢迎您的任何解决方案。。。

    1 回复  |  直到 1 年前
        1
  •  1
  •   Don't Panic    1 年前

    就在的底部 the Strava documentation 它们展示了如何使用curl将测试事件发送到您自己的webhook。它们显示了用 Content-Type: application/json 。这意味着它不是 application/x-www-form-urlencoded ,没有 $_POST ,因此您的webhook需要使用原始请求体。

    要做到这一点,请尝试以下操作:

    $payload = file_get_contents('php://input');
    $json = json_decode($payload, true);
    
    // See what it looks like
    print_r($json);
    

    参考文献:

    推荐文章