2015-05-29 19 views
11

Tôi đang sử dụng mã bên dưới để lấy dữ liệu người dùng nhưng không biết tại sao nó nói lỗi mã thông báo không hợp lệ trong khi tôi đang sử dụng cùng một mã trên một máy chủ khác. Tôi đã kiểm tra CURL được bật trong hệ thống của tôi. Bạn có thể xem ví dụ làm việc với mã bên dưới trên http://specificpromotions.com/test/test.php. Điều gì có thể là vấn đề xin vui lòng giúp tôi. Sự giúp đỡ của bạn sẽ được trân trong. cảm ơnCurl không gửi trên máy chủ cục bộ của tôi

$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

Không biết lỗi tôi nâng cấp Ubuntu của tôi 12-14 là gì và vấn đề của tôi là cố định bây giờ :) – Vinie

+0

tôi hy vọng bạn sẽ không hiển thị USERPWD thực đây :) –

Trả lời

0

Trong một số API (như Facebook API), bạn đăng ký ứng dụng để mỗi mã thông báo được liên kết với một miền cụ thể. Vì vậy, trong trường hợp API bạn đang sử dụng có cùng logic, mã thông báo được sử dụng được liên kết với miền của máy chủ của bạn (specificpromotions.com), để sử dụng nó từ một máy chủ khác (tên miền khác nhau), bạn sẽ phải sử dụng mã thông báo riêng.

Tuy nhiên, tôi đã cố gắng thực thi tập lệnh của bạn và tôi không gặp vấn đề khi tìm nạp dữ liệu từ api theo cùng định dạng của liên kết của bạn.

Vì vậy, chắc chắn không có liên kết miền trong hệ thống xác thực của API. Vì vậy, tôi nghĩ rằng bạn sẽ phải kiểm tra cấu hình toàn hệ thống của bạn để tìm lý do curl không hoạt động.

+0

Mã không bị giới hạn đối với bất kỳ miền. Tôi đã thêm mã thông báo vào dòng này curl_setopt ($ ch, CURLOPT_USERPWD) – Vinie

+0

Tôi đã thực thi tập lệnh của bạn mà không bị lỗi. Tôi đã chỉnh sửa bình luận của mình ở trên. – Dimos

3

Trước hết kiểm tra xem curl được kích hoạt trong hệ thống hoặc máy chủ của bạn. Bạn có thể kiểm tra bằng cách sử dụng một trang đơn giản với mã này.

<?php 
phpinfo(); 
?> 

Nếu cuộn tròn được bật, nó sẽ hiển thị ở đó. Nếu nó không được kích hoạt, hãy kích hoạt nó. Bạn có thể check this link cho điều đó.

Tiếp theo kiểm tra các lỗi curl và xóa nó. Chỉ cần thêm mã này sau 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'; 
} 
Các vấn đề liên quan