【问题标题】:Getting data from Kobo Toolbox从 Kobo Toolbox 获取数据
【发布时间】:2018-01-16 12:34:42
【问题描述】:

我想从 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 已启用。

【问题讨论】:

  • 你有没有让它工作?我也面临同样的问题。

标签: rest curl


【解决方案1】:

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

在此处查看文档http://help.kobotoolbox.org/managing-your-project-s-data/rest-services

我的工作代码:

        $url = 'https://kc.kobotoolbox.org/api/v1/stats';

    $data = array (
       // 'q' => 'nokia'
        );

        $params = '';
    foreach($data as $key=>$value)
                $params .= $key.'='.$value.'&';

        $params = trim($params, '&');

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $url.'?'.$params ); //Url together with parameters
    //curl_setopt($ch, CURLOPT_CONNECTTIMEOUT , 7); //Timeout after 7 seconds
    //curl_setopt($ch, CURLOPT_HEADER  , false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $header = array();
    $header[] = 'Content-length: 0';
    $header[] = 'Content-type: application/json';
    $header[] = 'Authorization: Token xxxxxxxx';

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

        $result = curl_exec($ch);


if(curl_errno($ch))  //catch if curl error exists and show it
  echo 'Curl error: ' . curl_error($ch);

  echo $result;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 2013-10-11
    • 2011-02-24
    • 2013-01-30
    • 2015-03-26
    • 2012-04-20
    • 2021-09-08
    相关资源
    最近更新 更多