2015-07-20 46 views
1

我已經對change.org API進行了幾次API調用,並獲得了用戶配置文件詳細信息和用戶創建的請願單,現在我需要找到使用API​​登錄的方法。但我無法確定它爲什麼不工作。change.org登錄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數據

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

** ** 1你有沒有得到,一個autorization關鍵現場。 ** 2 **你確定你使用的是正確的鑰匙 – RiggsFolly

+0

@RiggsFolly是的,我有。這裏是2個鍵。 API密鑰32cf9810f982f95613cec5cce3154dc83966f2a89111661e6355938ad70b20f6 祕密6acc5384782f8449e2775c3abf7688ec89cfa1ac76c710f2a745ad5c323e5bc9 – dev1234

+0

我認爲你是混亂的結果參數與請求參數。它看起來像api調用需要這些參數'petition_id,page_size,page,page_sort' – RiggsFolly

回答

0

你需要發送一個RSIG變量

$parameters['rsig'] = hash('sha256', $query_string_with_secret_and_auth_key);