1

我正在使用 WordPress 和wp_remote_get.

我在尝试发布到我的事件集合时不断收到 404 错误,我不确定我是否做得对。

这是我目前正在使用的代码:

$bucket = array( 'purchase' => json_encode( $options ) );

$keen_url = 'https://api.keen.io/3.0/projects/PROJECTNAME/events/installs?api_key=KEY';

$headers = array( 
    'Content-Type' => 'application/json'
);

$response = wp_safe_remote_get( $keen_url, array( 'headers' => $headers, 'body' => $bucket ) );
die( '<pre>' . print_r( $response, true ) );
4

1 回答 1

0

有两种方法可以发布到 Keen,也许它们在这里混为一谈。

如果您将单个事件直接发布到installsURL,我希望您的主体只是安装事件本身,而不包含像“购买”这样的集合名称。如果您purchase从您的事件中删除$bucket并且只拥有 JSON 编码的事件属性怎么办?

您的最终请求 URL 看起来像这样,dataURL 编码和 base-64 编码的事件主体在哪里,例如:

https://api.keen.io/3.0/projects/PROJECT_ID/events/installs?api_key=WRITE_KEY&data=ENCODED_DATA

也许您正在使用记录多个事件的方法,它采用一组集合及其事件。如果您想尝试该方法,请将purchases部分保留在您的 中$bucket,然后尝试将您的修改$keen_url为:

https://api.keen.io/3.0/projects/PROJECTNAME/events?api_key=KEY'(请注意,请求直接转到events而不是events/COLLECTION_NAME

这是该请求在 cURL 中的示例:

$ curl https://api.keen.io/3.0/projects/PROJECT_ID/events \
    -H 'Authorization: WRITE_KEY' \
    -H 'Content-Type: application/json' \
    -d '{
      "signups": [
        { "name" : "bob" },
        { "name" : "mary" }
      ],
      "purchases": [
        { "price": 10 },
        { "price": 20 }
      ]
    }'
于 2017-07-25T21:09:44.293 回答