2013-11-30 2 views
0

Я пытаюсь следовать по оси x cURL tutorial. Я создал новое устройство в режиме разработки, копироваться автоматически сгенерированный ключ API по умолчанию (с READ, WRITE, CREATE, DELETE разрешения) к примеру в учебнике и получить ответ:Xively REST API с cURL - 403 Запрещено

{"title":"Forbidden","errors":"You do not have the necessary permissions to access this resource"} 

я должен отсутствовать некоторые очевидные шаг. Нужно ли мне как-то активировать ключ API, прежде чем использовать его в скриптах?

локонов Команда:

curl --request POST \ 
--data '{"title":"My feed", "version":"1.0.0"}' \ 
--header "X-ApiKey: cPHLfGw1WJdMAbU8FzbfsdFyJ8suayHEH3OChRrkpYwQCmrb" \ 
--verbose \ 
https://api.xively.com/v2/feeds 

полный подробный вывод:

* About to connect() to api.xively.com port 443 (#0) 
* Trying 216.52.233.120... 
* Connected to api.xively.com (216.52.233.120) port 443 (#0) 
* successfully set certificate verify locations: 
* CAfile: none 
    CApath: /etc/ssl/certs 
* SSLv3, TLS handshake, Client hello (1): 
* SSLv3, TLS handshake, Server hello (2): 
* SSLv3, TLS handshake, CERT (11): 
* SSLv3, TLS handshake, Server key exchange (12): 
* SSLv3, TLS handshake, Server finished (14): 
* SSLv3, TLS handshake, Client key exchange (16): 
* SSLv3, TLS change cipher, Client hello (1): 
* SSLv3, TLS handshake, Finished (20): 
* SSLv3, TLS change cipher, Client hello (1): 
* SSLv3, TLS handshake, Finished (20): 
* SSL connection using ECDHE-RSA-RC4-SHA 
* Server certificate: 
* subject: C=US; postalCode=01801; ST=MA; L=Woburn; street=First Floor; street=500 Unicorn Park Drive; O=LogMeIn Inc.; OU=Secure Link SSL Wildcard; CN=*.xively.com 
* start date: 2013-05-07 00:00:00 GMT 
* expire date: 2014-04-27 23:59:59 GMT 
* subjectAltName: api.xively.com matched 
* issuer: C=US; O=Network Solutions L.L.C.; CN=Network Solutions Certificate Authority 
* SSL certificate verify ok. 
> POST /v2/feeds HTTP/1.1 
> User-Agent: curl/7.29.0 
> Host: api.xively.com 
> Accept: */* 
> X-ApiKey: cPHLfGw1WJdMAbU8FzbfsdFyJ8suayHEH3OChRrkpYwQCmrb 
> Content-Length: 38 
> Content-Type: application/x-www-form-urlencoded 
> 
* upload completely sent off: 38 out of 38 bytes 
< HTTP/1.1 403 Forbidden 
< Date: Sat, 30 Nov 2013 11:03:15 GMT 
< Content-Type: application/json; charset=utf-8 
< Content-Length: 98 
< Connection: keep-alive 
< X-Request-Id: 6cbb9676b448a4967187271dd246b423f7da2e39 
< 
* Connection #0 to host api.xively.com left intact 
{"title":"Forbidden","errors":"You do not have the necessary permissions to access this resource"} 

ответ

1

Это зависит от того, что вы пытаетесь сделать. Запросы POST для api.xively.com/v2/feeds больше не поддерживаются никаким ключом API. Это связано с тем, что, поскольку реализация устройств, программное создание каналов напрямую больше не поддерживается.

Это надзор в учебнике Xively, и я сообщу соответствующим людям, чтобы убедиться, что он изменился.

В то же время, поскольку вы уже создали устройство, вы в основном готовы начать учебник cURL на шаге 3 «Обновить фид». Используйте ключ API и идентификатор фида на устройстве разработки, которое вы уже создали на веб-сайте. Обязательно измените URL, тело и запрос POST на запрос PUT.

+0

Благодарим вас за объяснение. У меня нет проблем с обновлением существующих фидов, так что теперь все ОК. – Vasek

0

Я думаю, вам нужно добавить идентификатор подачи на конце URL.

+0

Благодарим за предложение. Это не написано в официальном учебнике таким образом, но это имеет смысл. Но это не помогает: 'curl --request POST --data '{" title ":" test "," version ":" 1.0.0 "}' - header" X-ApiKey: cPHLfGw1WJdMAbU8FzbfsdFyJ8suayHEH3OChRrkpYwQCmrb "--verbose https : // api.xively.com/v2/feeds/1242861948' заканчивается тем же сообщением об ошибке, что и выше: '{" title ":« Запрещено »,« ошибки »:« У вас нет необходимых разрешений для доступа к этому ресурсу "}' – Vasek

+0

Извините. Сначала я ответил, не понимая. Я не использую cURL. Пример использования вашей команды заключается в создании фида, а не для обновления существующего фида. Ваш ключ предоставляет доступ только к тому файлу, который вы уже создали. Для примера нужен мастер-ключ, который вы не захотите публиковать здесь. Надеюсь это поможет. – a4o

Смежные вопросы