我正在尝试在Android应用(使用Java)中设置Microsoft Translation API(MS认知服务的一部分)。我对Android编程和身份验证方法还比较陌生,对这些方法有些困惑。
当我注册一个Azure帐户时,我创建了一个Azure目录,然后在门户中创建了一个Android应用,对其进行了配置并获得了auth_config.json。
好吧,当我检查了MS Translator API文档时,发现可以通过GET请求和提供的API密钥使用它。但是我也看到我可以通过使用令牌进行身份验证,这就是我被卡住的地方。
我已经搜索了几天,但是我无法从我的Android应用中找到清晰简洁的身份验证指南/指南/文档(无用户上下文),以便通过令牌使用MS Translation API。
我找到了这个link,但是它仅在用户必须登录时适用。
也欢迎任何与身份验证令牌流及其概念设计有关的帮助,但主要问题是“如何通过使用令牌访问Azure API来对Android应用程序(无用户上下文)进行身份验证?”
谢谢。
答案 0 :(得分:0)
听起来您正在尝试使用Java创建本机Android应用程序以获取访问令牌,以便利用MS Translator API。但是,您希望流向非交互式。
您无需获取访问令牌即可使用MS Translator API。根据文档,您只需要获取翻译器密钥,然后便可以使用翻译器密钥使用翻译器REST API。
有关如何设置和获取密钥的《翻译入门》可以在这里找到: https://docs.microsoft.com/en-us/azure/cognitive-services/translator/translator-text-how-to-signup 您可以在以下位置找到有关如何在Java中使用Translator API的文档: https://docs.microsoft.com/en-ca/azure/cognitive-services/translator/quickstart-java-translate
除此之外,我认为了解未来如何从Microsoft获取访问令牌的概念很重要。 v2.0(也称为融合)端点流,有关身份验证过程如何工作的说明,可在此处的“概念>身份验证> OAuth2 ....流”下找到。 https://docs.microsoft.com/en-us/azure/active-directory/develop/authentication-scenarios
话虽如此,MSAL库不一定已实现所有这些流程。要查看有关哪些MSAL库支持哪些身份验证流的更多信息,您可以在以下链接中找到此信息: https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-authentication-flows
不幸的是,我们还不支持使用MSAL Android库的非交互式流程。如果您对此功能感兴趣,请在以下{@ {3}}处针对MSAL Android库提交问题 处理该库的一位工程师将与您联系并进行进一步讨论。
所有Azure AD库都有可在其各自的github仓库上找到的Wiki。可以在此处找到MSAL Android之一:https://github.com/AzureAD/microsoft-authentication-library-for-android/issues
希望这对您有所帮助,如果您还有其他疑问,请发表评论。
从本质上讲,您不需要使用MSAL,并且应该可以只使用转换键来调用MS Translator API。