Итак, этот заголовок должен действительно читать «Почему и Как …», так как я планирую начать с «Почему», а затем перейти к «как», но я не оглядываюсь назад и вы тоже. Вы инженер, и у вас есть код для написания, а у меня есть блог для написания. Итак, поехали!
Почему
Некоторые поставщики API разрешают использовать только один URL-адрес обратного вызова при использовании потока OAuth. Почему? У меня нет самых туманных идей. Это путь, по которому они решили пойти, поэтому Cloud Elements реализовали способ использования одного обратного вызова для обслуживания нескольких сред. Допустим, у вас есть одно приложение для интеграции Box вашего здания. С этим единственным приложением вы хотите иметь возможность работать как в своей тестовой, так и в производственной среде. Ну, из коробки (смотри, что я там делал) провайдер этого не позволяет. Таким образом, вы можете либо раскрутить два приложения, включить переменные окружения в свой код и сделать намного больше работы для себя (у кого есть время?). ИЛИ у вас может быть одно приложение с прокси-URL в качестве обратного вызова OAuth, которое может воздействовать на любую среду. Ваш звонок, я подожду, пока вы решите …
Ты мне нравишься. Вы все еще читаете, поэтому я должен предположить, что вы хотите эффективности, а не дублирования. Умный.
Как
Если вы все еще хотите, чтобы ваш провайдер API принудительно использовал URL-адрес прокси-сервера OAuth, следуйте инструкциям, и я покажу вам, как это настроить. Если вы все прочитаете, в конце вы также найдете забавное видео. Меньше веселья на вечеринке по случаю дня рождения и еще больше … «ООООО теперь я понимаю, что он имеет в виду» забавно.
-
Выберите своего провайдера (для этого примера мы используем Box )
-
Получите основную информацию для вашего приложения, такую как ключ API и секрет. Пока не заполняйте URL перенаправления, мы немного разберемся с этим.
-
Войдите в свою учетную запись Cloud Elements: https://my-staging.cloudelements.io
-
В левом нижнем углу нажмите на смайлик.
-
Обратите внимание на секреты вашей организации и пользователей, они понадобятся нам позже.
-
Нажмите на OAuth Proxy
-
Нажмите «Создать новый OAuth-прокси», введите имя с описанием и нажмите «Создать». Не беспокойтесь о ключах API и секретных разделах.
-
Теперь у вас должен быть уникальный URL, созданный элементами Cloud. Вставьте это в URL-адрес перенаправления на веб-сайте провайдера (см. Я уже говорил, что мы будем иметь дело с URL-адресом перенаправления позже)
-
Теперь для команды cURL GET:
-
Вышеприведенное должно либо дать вам код, либо запустить поток OAuth, который предоставит вам код. В любом случае, возьмите этот код.
-
Теперь мы собираемся создать экземпляр, поместив это:
-
12. Если вам повезет, вы должны получить ответный код 200 и новый экземпляр <insert Element name here>!
curl -X GET \
'https://api.cloud-elements.com/elements/api-v2/elements/<Element name here>/oauth/url?isOauthProxy=true&oauthProxyName=%3CYour%20OAuth%20Proxy%20Name%3E&apiKey=%3CAPI%20Key%3E&apiSecret=%3CAPI%20Secret%3E&callbackUrl=%3CUnique%20UL%20Cloud%20Elements%20generated%3E&state=%3CURL%20you%20want%20the%20proxy%20to%20point%20to%3E&callbackProxy=true' \
-H 'Authorization: User <secret>, Organization <secret>' \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/json'
curl -X POST \
https://api.cloud-elements.com/elements/api-v2/instances \
-H ‘Authorization: User <Secret>, Organization <sceret>’ \
-H ‘Cache-Control: no-cache’ \
-H ‘Content-Type: application/json’ \
-d ‘{
“element”: {
“key”: “<Name of Element>”
},
“providerData”: {
“code”: “<Code from the GET flow>”
},
“configuration”: {
“authentication.type”: “oauth2”,
“oauth.api.key”: “<Your API Key>“,
“oauth.api.secret”: “<Your API Secret>“,
“oauth.callback.url”: “<The OAuth Proxy URL Cloud Elements generated>”
},
“name”: “<Your name for the instance>”
}’
Путь!
Как и обещал, вот видео.
OauthProxy от Бена Пеппера на Vimeo .
PS «Конфигурационный» объект JSON для POST может быть немного изменен в зависимости от элемента, который вы используете. Обратитесь к вкладке аутентификации для данного элемента здесь .