【问题标题】:How to Authenticate with Alexa Voice Service from Android?如何通过 Android 的 Alexa 语音服务进行身份验证?
【发布时间】:2015-08-04 00:33:43
【问题描述】:

我正在尝试按照此页面上的说明从 Android 应用程序连接到 Alexa 语音服务。 https://developer.amazon.com/public/solutions/alexa/alexa-voice-service/docs/authorizing-your-alexa-enabled-product-from-an-android-or-ios-mobile-app

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

【问题讨论】:

    标签: android amazon


    【解决方案1】:

    APP_SCOPE 是:“alexa:all”

    根据 Joshua Frank (https://forums.developer.amazon.com/forums/message.jspa?messageID=18973#18973) 的建议,PRODUCT_DSN 可以是您想要的任何东西,“1234”

    PRODUCT_ID 是 AVS 开发者门户中的 ID (https://developer.amazon.com/edw/home.html#/avs/list)

    CODE_CHALLENGE应用程序安全配置文件中的客户端密码(应该已经在 S256 中进行哈希处理)

    【讨论】:

    • 这些说明听起来像是您需要生成自己的代码挑战。这是我的问题之一。
    • 文档不是很清楚...嗯,它是 beta
    • 我同意你关于 APP_SCOPE 和 PRODUCT_DSN 的看法。我只是没有在 PRODUCT_ID 和 CODE_CHALLENGE 上得到它。为什么您从 AVS Developer Portal 获取 PRODUCT ID,而文档 developer.amazon.com/public/solutions/alexa/alexa-voice-service/…login.amazon.com/ios#install_login_with_amazon_library 只提到 App Console:login.amazon.com/manageApps?我的第一个链接顶部描述了 CODE_CHALLENGE,你为什么说它取自安全配置文件中的客户端密码?
    • 这可能不再正确了,答案是在 AVS 仍处于测试阶段时给出的。如果答案不再好并且您有更好的答案,请继续,它也可能对其他人有所帮助!
    【解决方案2】:

    问题不在于APP_SCOPES变量,实际上是范围数据中传递的PRODUCT_ID、PRODUCT_DSN变量。

    我遇到了同样的问题,并在亚马逊开发者论坛上提出了关于需要在这些变量中传递什么的问题 - Alexa authentication issue using beta SDK

    一旦确定了 PRODUCT_ID、PRODUCT_DSN 和 CODE_CHALLENGE 变量,那么身份验证应该非常简单。

    【讨论】:

      【解决方案3】:

      APP_SCOPE 应该是“alexa:all”

      【讨论】:

        猜你喜欢
        • 2012-02-10
        • 1970-01-01
        • 1970-01-01
        • 2017-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多