2016-03-21 21 views
1

Bu yüzden Google'ın URL kısaltıcıyı Angular uygulamasında çalışıyorum, ancak API Anahtarını kullandığım için kullandığım sunucu tarafımda google API çağrısı yapmak için daha akıllı/daha güvenli olduğunu düşündüm Açısal.Düğüm - istek - Ve Google URL kısaltıcı

$http1 no'lu Mesajlar ile çok düz bir şekilde ileriye doğru ancak Node ile hızlı bir şekilde daha iyi bir şekilde kullanıyorum. request npm paketini kullanıyorum.

Yani esasen yapmam gereken:

POST https://www.googleapis.com/urlshortener/v1/url 
Content-Type: application/json 
{"longUrl": "http://www.google.com/"} 

Ve şu anda yazdık:

"errors": [{ "domain": "global", "reason": "required", "message": "Required", "locationType": "parameter”, “location": "resource.longUrl" 
}] 

isteğim yanlış mı:

//Load the request module 
var request = require('request'); 

//Configure and make the request 
request({ 
     url: 'https://www.googleapis.com/urlshortener/v1/url?key=XXXXXXXXX', 
     method: 'POST', 
     headers: { //We can define headers too 
     'Content-Type': 'application/json' 
     }, 
     data: { 
     'longUrl': 'http://www.myverylongurl.com' 
     } 
    }, function(error, response, body){ 
     if(error) { 
      console.log(error); 
     } else { 
      console.log(response.statusCode, response.body); 
     } 
}); 

hatasını almaya devam?

Teşekkürler.

+1

Soru nedir? – Cohars

+0

Sorumu güncelledim. Teşekkürler – userMod2

+0

Jetonlara erişiyor musunuz? cf [istekleri onaylama] (https://developers.google.com/url-shortener/v1/getting_started#OAuth2 Yetkisiz) –

cevap

1

request documentation'a göre, JSON verilerini json seçeneğiyle gönderebilirsiniz.

json - sets body to JSON representation of value and adds Content-type: application/json header. Additionally, parses the response body as JSON.

sizin durumda olacaktır:

request.post('https://www.googleapis.com/urlshortener/v1/url?key=xxxx', { 
    json: { 
    'longUrl': 'http://www.hugocaillard.com' 
    } 
}, function (error, response, body) { 
    if(error) { 
    console.log(error) 
    } else { 
    console.log(response.statusCode, body) 
    } 
}) 

Not: Ayrıca (ı json: ile data: değişiyordu vermedi tümü), ama burada request.post() çalışmaları yeterince request() yöntemi kullanabilirsiniz.

+0

Ahh - bunu kaçırdı! Teşekkürler – userMod2

+0

Evet, 'request' kullanım belgelerinde açık değil. Rica ederim! – Cohars

İlgili konular