【问题标题】:WordPress wp_remote_get and Keen.io Event CreationWordPress wp_remote_get 和 Keen.io 事件创建
【发布时间】:2017-12-26 12:45:54
【问题描述】:

我正在使用 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 ) );

【问题讨论】:

  • 一些需要检查的事情:您是否将 PROJECTNAME 替换为您的 Keen 项目 ID?如果此 URL 不正确,则会产生 404!
  • 您要参考哪个指南来编译此请求?奇怪的是,您有一个名为“purchase”的数组,但随后您似乎发布到一个名为“installs”的事件集合。您要发布什么类型的活动?
  • 此代码似乎有效,但安装中没有存储数据
  • 是的,我混淆了我的项目参数。

标签: keen-io


【解决方案1】:

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

如果您是posting a single event 直接访问installs URL,我希望您的正文只是安装事件本身,而不包含像“购买”这样的集合名称。如果您从 $bucket 中删除 purchase 并只保留 JSON 编码的事件属性会怎样?

您的最终请求 URL 如下所示,其中 data 是 URL 编码和 base-64 编码的事件主体,例如:

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

也许您正在使用recording multiple events 的方法,它接受一个集合及其事件的数组。如果您想尝试该方法,请将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 }
      ]
    }'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 2023-03-24
    • 1970-01-01
    相关资源
    最近更新 更多