2015-08-04 3 views
4

Я пытаюсь подключиться к Alexa Voice Service и приложения для Android, следуя указаниям на этой странице. https://developer.amazon.com/public/solutions/alexa/alexa-voice-service/docs/authorizing-your-alexa-enabled-product-from-an-android-or-ios-mobile-appКак выполнить аутентификацию с помощью службы Alexa Voice от Android?

Bundle options = new Bundle(); 
String scope_data = "{\"alexa:all\":{\"productID\":\"" + PRODUCT_ID + 
                    "\", \"productInstanceAttributes\":   {\"deviceSerialNumber\":\"" + PRODUCT_DSN + "\"}}}"; 
options.putString(AuthzConstants.BUNDLE_KEY.SCOPE_DATA.val, scope_data); 
options.putBoolean(AuthzConstants.BUNDLE_KEY.GET_AUTH_CODE.val, true); 
options.putString(AuthzConstants.BUNDLE_KEY.CODE_CHALLENGE.val, CODE_CHALLENGE); 
options.putString(AuthzConstants.BUNDLE_KEY.CODE_CHALLENGE_METHOD.val, "S256"); 
mAuthManager.authorize(APP_SCOPES, options, new AuthorizeListener()); 

Во-первых, я не знаю, что APP_SCOPES должно быть. Я установил его:

protected static final String[] APP_SCOPE = new String[]{"profile", "postal_code"}; 

, но я получаю сообщение об ошибке с сервера

AuthError cat= INTERNAL type=ERROR_SERVER_REPSONSE - com.amazon.identity.auth.device.AuthError: Error=invalid_scope error_description=An unknown scope was requested 

ответ

2

APP_SCOPE является: "Алекс: все"

PRODUCT_DSN может быть все, что вы хотите, "1234", согласно предложению от Joshua Франк (https://forums.developer.amazon.com/forums/message.jspa?messageID=18973#18973)

PRODUCT_ID является идентификатором в AVS Developper портал (https://developer.amazon.com/edw/home.html#/avs/list)

CODE_CHALLENGE Клиент Секрет в профиле безопасности вашего приложения (должно быть уже хэшируются в S256)

+0

инструкции это звучит, как вам нужно создать свой собственный код вызов. Это был один из моих вопросов. – theJosh

+0

Документация на самом деле не ясна ... ну, это ** beta ** – TyMarc

+0

Я согласен с вами в APP_SCOPE и PRODUCT_DSN. Я просто не получаю его на PRODUCT_ID и CODE_CHALLENGE. Почему вы берете идентификатор продукта от портала разработчика AVS, а документы https://developer.amazon.com/public/solutions/alexa/alexa-voice-services/docs/authorizing-your-alexa-enabled-product-from- an-android-or-ios-mobile-app и http://login.amazon.com/ios#install_login_with_amazon_library упоминают только о консоли приложений: http://login.amazon.com/manageApps? И CODE_CHALLENGE описывается в верхней части моей первой ссылки, почему вы говорите, что она берется из Client Secret в Security Profile? – quanguyen

0

Проблема не с переменной APP_SCOPES, это на самом деле с PRODUCT_ID, PRODUCT_DSN переменные передаются в данной области видимости ,

я столкнулся это точно такой же вопрос и подняли запрос в амазонки разработчиков форума на то, что должно быть передано в этих переменных - Alexa authentication issue using beta SDK

После PRODUCT_ID, PRODUCT_DSN & CODE_CHALLENGE переменные определены, то аутентификация должна быть довольно очень прямо.

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