PUT запрос на изменение записи

голоса: 0

Здравствуйте, помогите распутать паутину...

На странице "http://uapi.ucoz.com/" во вкладке "OAuth playground" 

curl запрос имеет вид:

curl -i -X PUT -H 'Authorization: OAuth oauth_callback="123", oauth_consumer_key="123", oauth_nonce="123", oauth_signature="123", oauth_signature_method="HMAC-SHA1", oauth_timestamp="123", oauth_token="123"'
http://123/uapi/blog

 А на странице с примером тут "http://api.ucoz.net/ru/manual/publ/entry#putentry" такой вид:

curl -i -X PUT --data-urlencode "oauth_consumer_key=ЗНАЧЕНИЕ" --data-urlencode "oauth_nonce=значение"  --data-urlencode "oauth_signature_method=HMAC-SHA1" --data-urlencode "oauth_timestamp=значение"  --data-urlencode "oauth_version=1.0" --data-urlencode "oauth_token=значение"  --data-urlencode "auth_signature=значение" --data "id=3" --data-urlencode "title=Новое название" http://yoursite.ucoz.ru/uapi/publ

Я чет не догоняю, почему так?

Я пытаюсь сделать редактирование записи в блоге, id записи 1, отредактировать название, код:

curl -i -X PUT -H 'Authorization: OAuth oauth_callback="123", oauth_consumer_key="123", oauth_nonce="123", oauth_signature="123", oauth_signature_method="HMAC-SHA1", oauth_timestamp="123", oauth_token="123",
id="1",
title="123"'
http://123/uapi/blog

 Но все время вылазиет ошибка:

401 Unauthorized
{"error":{"msg":"Used nonce","code":"USED_NONCE"}}

Но если обнавляю данные: oauth nonce и oauth timestamp то выводит один раз это:

{"error":{"msg":"Материала с данным индексом не существует"}}

Хотя запись с таким ID есть.
 

| Автор: | Категория: PHP и API на uCoz

Ответов: 2

Голоса: +1
 
Лучший ответ

Curl запрос один и тот же. Просто разная форма записи (сокращенная). 

Что касается ошибки Used nonce, то это значит вы не обновили oauth nonce. А данную переменную надо обновлять при каждом запросе. 

Что касается ошибки о том, что материала с данным id нет. Если вы уверены, что данный материал существует, то здесь может быть только 1 ошибка, а именно, материал не активен. Т.е. не доступен для просмотра (не активирован)

Пользуйтесь готовым модулем от разработчиков для работы с uAPI. Будет меньше проблем, меньше ошибок и большее понимание кода. Зачем вам этот curl?

| Автор:
Выбор ответа лучшим | | Автор: Yuri_Geruk
Хотя по идее это должно распространятся только на гет запрос... (а про ошибку id материала)
Голоса: +1

Здравствуйте!

Первая ошибка «401 - несанкционированный доступ», возникает в тех случаях, когда Вы обращаетесь с параметрами oauth nonce и oauth timestamp, которые Вы уже использовали. При каждом обращении к uApi, эти параметры должны быть уникальными.

Что касается второй ошибки, то проверьте правильность ID материала, это можно сделать в Панели управления (http://usite.ru/panel/?a=entries;m=pu, при переходе по ссылке предварительно авторизируйтесь).

| Автор:
...