2014-04-03 43 views
5

Tôi đang cố gọi các điểm cuối API của Instagram từ phía máy khách. Tôi chỉ có thể truy cập các điểm cuối dựa trên GET bằng cách sử dụng JSONP, trong đó Instagram recommends. Đối với những người yêu cầu POST hoặc DELETE, có vẻ như CORS không được kích hoạt, vì vậy các loại cuộc gọi ajax này thất bại.API Instagram từ phía máy khách

Có phương pháp hoặc phương pháp nào tôi có thể sử dụng để truy cập các API này từ phía máy khách không?

+0

biểu mẫu ẩn có thể đăng, nhưng bạn không thể nhận được giá trị trả lại ở đó, vì vậy nó có thể không sử dụng được cho bạn. tuy nhiên, bạn có thể làm việc xung quanh việc thiếu sự trở lại bằng cách chạy một GET khác và xem liệu có gì thay đổi để phát hiện thành công theo cách thủ công hay không. – dandavis

+0

Tôi vừa thử nghiệm POST với JSONP. Nó hoạt động. –

Trả lời

3

Không thể thực hiện cuộc gọi POST trực tiếp từ phía máy khách, bạn phải thiết lập máy chủ proxy giúp gọi API Instagram cho POST và DELETE và ứng dụng khách của bạn có thể gọi máy chủ proxy.

0

Tôi không hiểu câu hỏi của bạn, nhưng tôi sử dụng API Instagram trong Client Side, và tôi làm cho POST và GET, sử dụng nó:

$.ajax({ 
    type: "POST", 
    "method": "POST", 

    //Use the URL in Instagram Document 
    url: 'https://api.instagram.com/v1/media/<ID>/likes?access_token=<TOKEN>', 
    dataType: "jsonp", 

    //To get response 
    success: function(result){ 

    //Exemple, if is okay or not 
    if(result.meta.code == 200){ 
    alert('ok'); 
    }else{ 
    alert('fail'); 
    } 

    } 
}); 

Bạn có thể thay đổi id token và phương tiện truyền thông, và thử nghiệm nó trên http://jsfiddle.net/DvLE2/

Nếu bạn cần gửi dữ liệu (hành động, trong mối quan hệ), bạn thêm:

data: data; 

dụ, đối với mối quan hệ (làm theo hoặc unfollow một người nào đó):

$.ajax({ 
     type: "POST", 
     "method": "POST", 

     url: 'https://api.instagram.com/v1/users/<ID>/relationship?access_token=<TOKEN>', 
     //action (you need that to use relationship 
     data: {action: 'follow'}, 
     dataType: "jsonp", 
     success: function(result){ 
     if(result.meta.code == 200){ 
     alert('ok'); 

     }else{ 
     alert('fail'); 
     } 

     } 
    }); 
+2

Bạn không thể thực hiện yêu cầu POST bằng JSONP. Tùy chọn 'type' của bạn phải là" GET " –

Các vấn đề liên quan