我已经对change.org API进行了少量API调用,并获得了用户个人资料详细信息和用户创建的请愿列表,现在我需要找到一种使用API登录的方法。但我无法弄清楚为什么它不起作用。
这是获取请愿清单的代码
<?php
$API_KEY = '32cf9810f982f95613cec5cce3154dc83966f2a89111661e6355938ad70b20f6';
$REQUEST_URL = 'https://api.change.org/v1/users/325635554/petitions';
//$PETITION_URL = 'https://www.change.org/p/kasun-pay-your-workers-overtime';
$parameters = array(
'api_key' => $API_KEY,
//'petition_url' => $PETITION_URL
);
$query_string = http_build_query($parameters);
$final_request_url = "$REQUEST_URL?$query_string";
$response = file_get_contents($final_request_url);
$json_response = json_decode($response, true);
echo $response; exit;
?>
回复
{
"page": 1,
"prev_page_endpoint": null,
"next_page_endpoint": null,
"total_pages": 1,
"petitions": [
{
"petition_id": 3777680,
"title": "kosala: Pay your workers salary",
"status": "open",
"url": "",
"overview": "Pay your workers salary",
"targets": [
{
"name": "kosala",
"type": "custom"
}
],
"letter_body": "Pay your workers salary",
"signature_count": 1,
"image_url": "",
"category": null,
"goal": 100,
"created_at": "2015-07-20T11:51:56Z",
"end_at": "2016-07-20T23:59:59Z",
"creator_name": "Amarn Dev",
"creator_url": "https:",
"organization_name": null,
"organization_url": null
},
{
"petition_id": 3776824,
"title": "kasun: Pay your workers overtime",
"status": "open",
"url": "https:",
"overview": "Pay your workers overtime Pay your workers overtime",
"targets": [
{
"name": "kasun",
"type": "custom"
}
],
"letter_body": "Pay your workers overtime",
"signature_count": 1,
"image_url": "",
"category": null,
"goal": 100,
"created_at": "2015-07-20T08:52:10Z",
"end_at": "2016-07-20T23:59:59Z",
"creator_name": "Amarn Dev",
"creator_url": "https://api.change.org/u/325635554",
"organization_name": null,
"organization_url": null
},
{
"petition_id": 3623702,
"title": "Jon Tester: Pay your workers overtime",
"status": "open",
"url": "https://api.change.org/p/jon-tester-pay-your-workers-overtime",
"overview": "Pay your workers overtime",
"targets": [
{
"name": "Sen. Jon Tester, Montana",
"title": "Senator",
"type": "us_government",
"target_area": "Montana"
}
],
"letter_body": "Pay your workers overtime",
"signature_count": 1,
"image_url": "//d22r54gnmuhwmk.cloudfront.net/app-assets/petitions/show/default_petition-8290d88b72fb74c3e759135dcbc48b22.png",
"category": null,
"goal": 100,
"created_at": "2015-06-22T06:38:59Z",
"end_at": "2016-06-22T23:59:59Z",
"creator_name": "Amarn Dev",
"creator_url": "https://api.change.org/u/325635554",
"organization_name": null,
"organization_url": null
}
]
}
现在要登录,他们已经提供了此API文档。 https://github.com/change/api_docs/blob/master/v1/documentation/resources/petitions/signatures.md#post-signatures
auth_key string The petition authorization key.
所以当我向这个URL发出请求时
https://api.change.org/v1/petitions/3623702/signatures
与post params
api_key=32cf9810f982f95613cec5cce3154dc83966f2a89111661e6355938ad70b20f6&lastName=Hello&email=hello123%40gmail.com&firstName=World&city=Chennai&postal_code=00200&country_code=IN
我收到了这个错误。
{"result":"failure","messages":["authorization key cannot be found or is not granted"]}
API密钥 32cf9810f982f95613cec5cce3154dc83966f2a89111661e6355938ad70b20f6
秘密 6acc5384782f8449e2775c3abf7688ec89cfa1ac76c710f2a745ad5c323e5bc9
答案 0 :(得分:0)
您需要发送一个rsig变量
$parameters['rsig'] = hash('sha256', $query_string_with_secret_and_auth_key);