2016-08-12 2 views
2

Я пытаюсь использовать форму тяжести формы api, https://www.gravityhelp.com/documentation/article/web-api/, но я получаю ошибку 401, независимо от того, что я пытаюсь. Я пробовал использовать все методы, перечисленные в документации, и в статье Стивена Хенти, https://www.stevenhenty.com/gravity-forms-api/, но он, похоже, не работает.Гравитационные формы API всегда 401

Если я вошел в WordPress сайт как администратор я не должен быть в состоянии использовать ссылку как:

http://mydomain/gravityformsapi/forms/

Благодарим Вас за любые предложения.

ответ

2

Я получал то же самое из-за какой-то странности относительно конечной точки маршрута. При расчете подписи у вас не использовать трейлерную косую черту на маршруте: forms/1.

Но вы сделать использовать слэш в URL (в противном случае я получил 301 Moved Permanently):

http://demo.gravityforms.com/gravityformsapi/the_route/?api_key...

Это выглядит странно иметь /?api_key..., но это то, что работает для меня.

Here's the ruby example я использовал с demo credentials:

GravityFormsAPI.generate_URL(site: 'demo.gravityforms.com', route: 'forms/1', public_api_key: '5b225f8382', private_api_key: 'fc6d1bc71d2ebfc')

Надеется, что это помогает.

+0

Если я хочу добавить feild_filters или получить одну запись entry_Id, она всегда дает 401 независимо от того, что я делаю. Если я использую это с '/', то это то же самое, что я использую без него, это одно и то же. Хотя браузер автоматически добавляет '/' в конце URL. Я пытаюсь реализовать его на iOS, и я следил за https://github.com/ibjects/GFAPI-iOS –

0

Основано на solution here Я отправляю этот ответ.
Представьте, что вы создали URL-адрес, и он не работает, и вы получили 401. Затем через некоторое время вы поняли ошибку, которую Opps! Параметры, которые я прошел, нуждались в скобке, и вы снова запускали код, и вы снова получили 401. Почему это?

Это связано с тем, что параметры apiKey, Signature и Expire совпадают, и вы изменили только другие параметры с помощью вашего запроса GET. Однако эти три параметра используются для аутентификации пользователя, так что означает, что старая подпись, которая была сгенерирована для отказа в разрешении, снова откажет ей независимо от того, что.

Итак, чтобы исправить это, я только что изменил срок годности от 1577922200 до 1577933200. Я мог бы изменить его на что угодно, но дело в том, что мне просто нужно дать что-то новое, чтобы можно было создать новую подпись. Поэтому, когда я сменил его, он начал работать.

ДРУГИЕ ВОЗМОЖНЫЕ ПРИЧИНЫ

При принятии подписи с использованием SHA1 использовать NSString *string_to_sign = [NSString stringWithFormat:@"%@:%@:%@:%@",api_key,http_method,route,expires]; согласно документации.Но для того, чтобы сделать CCHmac вы должны передать ему две вещи:

  1. Key
  2. данных

и на основе link он создан как

const char *cKey = [api_private_key cStringUsingEncoding:NSASCIIStringEncoding]; 
const char *cData = [string_to_sign cStringUsingEncoding:NSASCIIStringEncoding]; 

Так что я было ошибкой в ​​том, что я использовал API Key в cKey вместо API Private Key. Поэтому я меняю его, как сказано в учебнике, и это сработало. В противном случае я получал 401 неважно, что я пытаюсь.

1

Иногда я получил прерывистую 401 ошибки после того, как много исследований, я нашел эту статью

Azure DocumentDB Intermittent 401 error when querying REST API via Obj-c

Если подпись содержит знак + я получил 401 ошибку

Может, помочь другому человеку

Извините за мое письмо на английском языке

1

Для моего случая было то, что у меня нет cli нажал кнопку обновления «Веб-интерфейс API».

Убедитесь, что вы нажимаете кнопку обновления, хотя на нем отображается API-ключ, но при этом вам нужно нажать кнопку обновления, чтобы включить API.

+0

Спасибо за это, если бы я был в тупике какое-то время! Чтобы подвести итог для кого-либо еще, после того, как вы установили флажок «Включено», чтобы включить доступ к API в настройках API форм тяжести и нажал кнопку «Обновить», вам нужно нажать кнопку «Обновить», если вы получили учетные данные API был сгенерирован. Не логично я знаю, но, кажется, ответ! –

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