从Kobo Toolbox获取数据

时间:2018-01-16 12:34:42

标签: rest curl

我想从kobo api(https://kc.kobotoolbox.org/api/v1/)获取表单数据。我从kobo注册了客户端应用程序。要授权客户端应用程序,我在url下面运行,但结果是

http://localhost/kobo/o/authorize?client_id=MY_CLIENT_iD&response_type=code&state=xyz

找不到对象! 在此服务器上找不到请求的URL。如果您手动输入了URL,请检查拼写,然后重试。

如果您认为这是服务器错误,请与网站管理员联系。

错误404 本地主机 Apache / 2.4.27(Win32)OpenSSL / 1.0.2l PHP / 7.1.9

同样,访问令牌请求也会导致相同的错误

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://localhost/o/token/");

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=authorization_code&\ncode=PSwrMilnJESZVFfFsyEmEukNv0sGZ8&\nclient_id=MY_CLIENT_ID&\nredirect_uri=http://localhost:30000");

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_USERPWD, "USERNAME" . ":" . "PASSWORD");


$headers = array();

$headers[] = "Content-Type: application/x-www-form-urlencoded";

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);


$result = curl_exec($ch);

echo $result;

if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}

curl_close ($ch);

找不到对象! 在此服务器上找不到请求的URL。如果您手动输入了URL,请检查拼写,然后重试。

如果您认为这是服务器错误,请与网站管理员联系。

错误404 本地主机 Apache / 2.4.27(Win32)OpenSSL / 1.0.2l PHP / 7.1.9

我正在使用xampp并启用了curl。

1 个答案:

答案 0 :(得分:1)

您必须使用https://kc.kobotoolbox.org/api/v1/而不是https://kf.kobotoolbox.org/api/v1/

此处结帐文档http://help.kobotoolbox.org/managing-your-project-s-data/rest-services

我的工作代码:

const scramjet = require("scramjet");
const fs = require("fs");
const JSONStream = require("JSONStream")

fs.createReadStream(filename)             // open the file
    .pipe(JSONStream.parse('*'))          // parse JSON array to object stream
    .pipe(new scramjet.DataStream)        // pipe for transformation
    .map(({name}) => name)                 // extract "name" field from each object
    .toJSONArray()                        // create an array stream
    .pipe(fs.createWriteStream(outname)); // write to output.