Опубликовать запрос к API EventBRite через URI в рельсах

Я хотел бы отправить запрос по почте через URI в API-интерфейс eventbrite, чтобы получить ключ доступа пользователя. Документально здесь: https://www.eventbrite.com/developer/v3/reference/authentication/

Затем вы должны обменять этот код доступа на токен OAuth. Отправить запрос POST по адресу:

https://www.eventbrite.com/oauth/token Этот POST должен содержать следующие urlencoded данные, а также заголовок Content-type: application/x-www-form-urlencoded:

Код =THE_USERS_AUTH_CODE&client_secret=YOUR_CLIENT_SECRET&client_id=YOUR_API_KEY&grant_type=authorization_code

Я пытаюсь перевести это на рельсы и отправить запрос по почте через URI. Ожидается, что ответом будет код авторизации:

require "uri"
require "net/http"

params = {'code' => current_user.eventbrite_key, 'client_secret' => 'XXXX', 'client_id' => 'XXXX', 'grant_type' => 'authorization_code' }

response = Net::HTTP.post_form(URI.parse('https://www.eventbrite.com/oauth/token'), params)

Это не работает (http неверный запрос). Я исследовал, что тип содержимого по умолчанию уже "application/x-www-form-urlencoded", поэтому мне не нужно было определять это в моем запросе. "Код" должен быть правильным, так как я просто получаю его раньше с помощью их URL обратного вызова. Другие учетные данные также должны быть правильными.

Ответ следующий:

<Net::HTTPBadRequest:0x007ff8fcc9e4b8>

"{\" server \":[\" nginx \"],\" date \":[\" ср., 08 июля 2015 14:48:19 GMT\"],\"content-type\":[\"приложения / JSON \"] \ "передача-кодирование \": [\ "фрагментированное \"] \ "связь \": [\ "держать-жив \"], \ "х-XSS-защита \":[\"1; Режим = блок \"],\" х-Content-Type-опции \":[\"nosniff\"],\" X-UA-совместимый \":[\"IE= край \"],\" P3P \":[\"CP=\\"NOI ADM DEV PSAi COM NAV НАША OTRo STP IND DEM\\"\"],\"x-frame-options\":[\"SAMEORIGIN\"],\"set-cookie\":[\"mgrefby=; Домен =.eventbrite.com; истекает = чт, 07-июл-2016 14:48:19 GMT; HttpOnly; Max-Age=31536000; Путь =/\"\"G=v%3D2%26i%3D54a93968-6bc1-486a-B401-fedab0b33dc4%26a%3D5f9%26s%3D56f73cc9c4519dc0d05f6518a092e66c6c83516c; Домен =.eventbrite.com; истекает = чт, 07-июл-2016 14:48:19 GMT; HttpOnly; Path=/\"\"ebEventToTrack=; истекает = чт, 1 января 1970 г. 00:00:00 по Гринвичу; Max-Age=0; Path=/\"\"SS=AE3DLHS8ESSoJhhYoWTny-enqBu_PN4d5A; Домен =.eventbrite.com; HttpOnly; Path=/; обеспечить \ "\"eblang= ло%3Den_US%26la%3Den-нам; Домен =.eventbrite.com; истекает = чт, 07-июл-2016 14:48:19 GMT; HttpOnly; Path=/\"\"AN=; истекает = чт, 1 января 1970 г. 00:00:00 по Гринвичу; Max-Age=0; Path=/\"\"mgref=typeins; Домен =.eventbrite.com; истекает = чт, 07-июл-2016 14:48:19 GMT; HttpOnly; Max-Age=31536000; Path=/\"\"SP=AGQgbblORi0c9X3owNbUIuFSZeUwSlY9HoUdpypGreork-Gf0GI6rzrLrcQDGWvu49mxHIQW9iBqa6JR-1k0eGvBhwnNpaON_Aak96kQ1yu90CaN7P2lnvfddxfskEniVHppbf0rp8YL5PA4vLYzRiaWdSohVy73j8H6HlCakht1OfKyxvwG-FeyR5rwPFEJw0iGB71Azw3oyFOTJcGJcYMWdSSVgS3F6pEbV5QI4ps5WlNMW0C9uL0; Домен =.eventbrite.com; HttpOnly; Path=/\"\"SERVERID=djc11; Путь =/\"]}"

URI.parse (' https://www.eventbrite.com/oauth/token') без параметров возвращает:

{ "Схема": "HTTPS", "пользователь": нулевой, "пароль": нулевой, "хозяин":"www.eventbrite.com","порт": 443, "путь":"/ OAuth / маркер", "запрос": NULL, "непрозрачные": NULL, "фрагмент": NULL, "анализатор":{"регулярное выражение":{"СХЕМА"?: "(- смесь:\A[A-Za-Z] [A- Za-z0-9 +\ -.]\ Z)","USERINFO":"(?-mix:\A(?:%\ H \h|[!$\ U0026-.0 -; =A-Z_a -z ~])\ z) "," HOST ":" (? - mix: \ A (?: (? \ u003cIP-литерал \u003e\[(?:(?? u u33cIPv6address\u003e(?:\h{)? 1,4}:){6}(\u003cls32\u003e\ ч {1,4}:\ ч {1,4}|(\u003cIPv4address\u003e(\ u003cdec-октет \u003e[1-9]? \ д |1\ д {2}|2[0-4]\ д |25[0-5]|.. \ г) \ \ г \ u003cdec-октет \ u003e \ \ г \ u003cdec-октет \ u003e \. \ г \ u003cdec-октет \u003e))|::(?:\ ч {1,4}:){5}\ г \u003cls32\u003e|\ ч {4}::(?:\ ч {1,4}:){4}\ г \u003cls32\u003e|(?:? (: \ ч {1,4}:)?? \ ч {1,4}):: (: \ ч {1,4}:){3}\ г \u003cls32\u003e|(?:? (: \ ч {1,4}:)? {2}\ ч {1,4}):: (: \ ч {1,4}:) {2}\ г \u003cls32\u003e|(?:? (: \ ч {1,4}:)? {3} \ ч {1,4}):: \ ч { 1,4}: \ г \ u003cls32 \ u003e | (: (: \ ч {1,4}:??) {4} \ ч {1,4})?:: \ г \u003cls32\u003e|(?: (?: \ ч {1,4}){,5}\ ч {1,4}):: \ ч {1,4}|(?:? (: \ ч {1,4}:.){,6}\ ч {1,4})?::)|(\u003cIPvFuture\u003ev\ ч +\ [!$\u0026-0,0 - =A-z_a-г ~] +)) \]) | \ g \ u003cIPv4address \ u003e | (? \ u003creg-name \ u003e (?:% \ h \h|[!$\ u0026-.0-9; =A-Z_a-z ~]))) \ z) "," ABS_PATH ":" (? - mix: \ A \ / (?:% \ H \h|[!$\ U0026-.0 -; =@- Z_a-z ~])(?:\/(?:% \ h \h|[!$\ u0026-.0 -; =@- Z_a-z ~]))\ z) "," REL_PATH ":" (? - mix: \ A (?:% \ ч \ ч | [$ \ u0026-0,0 - =@- z_a-г ~!])+(:\/(?:?!% \ ч \ ч | [$ \ u0026-0,0 - =@-Z_a-z ~]))\ z) "," QUERY ":" (? - mix: \ A (?:% \ H \h|[!$\ U0026-.0 -; =@- Z_a- z ~ \ /?])\ z) "," ФРАГМЕНТ ":" (? - mix: \ A (?:% \ h \h|[!$\ u0026-.0 -; =@- Z_a-z ~ \ /?])\ z) "," OPAQUE ":" (? - mix: \ A (?: [^ \ /].)? \ z) "," PORT ":" (? - mix: \ A [\ x09 \ x0a \ x0c \ x0d]\ d * [\ x09 \ x0a \ x0c \ x0d] * \ z) "}}}

0 ответов

Другие вопросы по тегам