2015-05-29 11 views
11

Używam poniższego kodu, aby uzyskać dane użytkownika, ale nie wiem, dlaczego mówi on o błędzie nieprawidłowego tokena, gdy używam tego samego kodu na innym serwerze i działa poprawnie. Sprawdziłem CURL jest włączony w moim systemie. Możesz zobaczyć działający przykład z poniższym kodem na http://specificpromotions.com/test/test.php. Jaki mógł być problem, pomóżcie mi. Twoja pomoc byłaby doceniona. dziękiZwijanie nie wysyła na mój serwer lokalny

$ch = curl_init(); 
//you will need to change the 'eric' to what the user is searching for in the manual entry section 
$data = array('qFunc' => 'searchActiveStaff', 'qArgs' => 'eric'); 

curl_setopt($ch,CURLOPT_URL,'http://api.yfcimpact.com/yfc_dev.php/api/usa/person?' . http_build_query($data)); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 
curl_setopt($ch, CURLOPT_USERPWD, "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJob3N0IjoiMTIwLjU5LjE1OS4yMzIiLCJ1c2VybmFtZSI6InJzbWl0aHR5MyIsImlkIjoxMDAwNTQwMjcwLCJpYXQiOjE0MzI4Nzk0NjQsImV4cCI6MTQzMjkwMTA2NCwicm9sZXMiOlsiUk9MRV9VU0VSIiwiUk9MRV9zZXR0aW5ncyIsIlJPTEVfcGVvcGxlIiwiUk9MRV9wZW9wbGVfYWRkX25ldyIsIlJPTEVfcGVvcGxlX2VkaXQiLCJST0xFX3BlcnNvbl9lZGl0X3Blcm1pc3Npb24iLCJST0xFX3NldHRpbmdzX3Blcm1pc3Npb25zIiwiUk9MRV9zZXR0aW5nc19jdXN0b21fZmllbGRzIiwiUk9MRV9vZmZpY2UiLCJST0xFX3NldHRpbmdzX21pbmlzdHJ5X3NpdGVzIiwiUk9MRV9zZXR0aW5nc19taW5pc3RyeV9zaXRlc19hZGQiLCJST0xFX3NldHRpbmdzX2xlZ2FsIiwiUk9MRV9wZW9wbGVfZWRpdF9saXN0IiwiUk9MRV9vZmZpY2VfZmluYW5jaWFsIiwiUk9MRV9vZmZpY2VfYnVkZ2V0X3BsYW4iLCJST0xFX29mZmljZV9taW5zdGF0cyIsIlJPTEVfc2V0dGluZ3NfZmllbGRfbGFiZWxzIiwiUk9MRV9vZmZpY2VfYmdjaGVjayIsIlJPTEVfb2ZmaWNlX3ZlaGljbGUiLCJST0xFX29mZmljZV93b3JrZXJzY29tcCIsIlJPTEVfc2V0dGluZ3NfY3VzdG9tX2ZpZWxkX2dyb3VwcyIsIlJPTEVfc2V0dGluZ3NfdGV4dCIsIlJPTEVfc2V0dGluZ3NfZW1haWwiLCJST0xFX29mZmljZV9jaGFydGVyaW5nIiwiUk9MRV9ldmVudHMiLCJST0xFX3NldHRpbmdfY3VzdG9tcXVlc3Rpb25zIl0sImZ1bGxOYW1lIjoiUm9nZXIgU21pdGgiLCJjb3JlT3JnSWQiOiI0MjcifQ.V9B-TE_72D0YYE5FAHPB_pkYGhkAGiHRQzZjTEb0Jag:"); 

$json = curl_exec($ch); 
$people = json_decode($json); 

print "people who have eric in their name:\n"; 
var_export($people); 
+0

Nie wiem jaki był błąd i zmodernizowane moim Ubuntu 12 do 14 i mój problem został rozwiązany teraz :) – Vinie

+0

Mam nadzieję, że nie pokazuje prawdziwego HasłoUżytkownika tutaj :) –

Odpowiedz

0

W niektórych interfejsach API (takich jak Facebook API) rejestruje się aplikację, dzięki czemu każdy token jest powiązany z określoną domeną. Tak więc, jeśli używany interfejs API ma tę samą logikę, używany token jest powiązany z domeną serwera (specificpromotions.com), aby móc korzystać z niego z innego serwera (również innej domeny), używać oddzielnego tokena.

Jednak próbowałem wykonać skrypt i nie miałem problemu z pobieraniem danych z api w dokładnie tym samym formacie twojego linku.

Z pewnością nie istnieje powiązanie domeny w systemie uwierzytelniania interfejsu API. Tak więc, myślę, że będziesz musiał sprawdzić konfigurację całego systemu, aby znaleźć powód, dla którego curl nie działa.

+0

Token nie jest ograniczony do dowolnego domena. Dodałem token w tej linii curl_setopt ($ ch, CURLOPT_USERPWD) – Vinie

+0

Uruchomiłem twój skrypt bez żadnych błędów. Poprawiłem mój komentarz powyżej. – Dimos

3

Po pierwsze sprawdź, czy curl jest włączona w systemie lub serwera. Możesz to sprawdzić, używając prostej strony z tym kodem.

<?php 
phpinfo(); 
?> 

Jeśli curl jest włączony, to się pokaże. Jeśli nie jest włączony, włącz go. Możesz o to poprosić check this link.

Następnie sprawdź błędy zwijania i wyczyść je. Po prostu dodaj ten kod po curl_exec ($ ch);

$ch = curl_init(); 
    $data = array('qFunc' => 'searchActiveStaff', 'qArgs' => 'eric'); 
    curl_setopt($ch,CURLOPT_URL,'http://api.yfcimpact.com/yfc_dev.php/api/usa/person?' . http_build_query($data)); 
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 
    curl_setopt($ch, CURLOPT_USERPWD, "ag:");  
    if(curl_exec($ch) === false) 
{ 
    echo 'Error Details: ' . curl_error($ch); 
} 
else 
{ 
    echo 'Success'; 
}