Android oneDrive 集成(一)-- SDK申请
Android oneDrive 集成(二)– 单租户账号集成
Android oneDrive 集成(三)– 使用Postman测试Graph API
最近我的个人应用KeepassA在酷安上收到了很多私信,问我能不能集成下OneDrive
,作为唯一的没有被墙的,大型的跨平台云盘服务,集成OneDrive
貌似很有必要。因此研究了好几天的微软文档,遇到了很多坑,总算是搞明白了该怎么集成。
这里不得不吐槽下,微软的东西总是大而全,对新接开发者很不友好,平台那出现问题,错误信息非常不明确。
一、注册azure账号
需要visa卡
https://azure.microsoft.com/zh-cn/free/
二、创建clientId
2.1 创建应用
为了让所有人都可以使用api,选择这个。这里有个地方需要注意,必须要输入重定向url
,否则后续添加身份验证时就会提示错误。
添加公用api的作用范围
2.2 添加平台
填写应用配置
获取签名hash
# mac |
debug签名:
# mac |
2.3 验证域名(可以不管)
然后到域名管理那,增加记录,然后验证域
x 常见问题
x.1 你的回复 URL 包含禁止使用的字词或域
https://docs.microsoft.com/zh-cn/azure/active-directory/develop/supported-accounts-validation
https://github.com/MicrosoftDocs/azure-docs/issues/54401
原因1:
单租户和多租户定义
2020/11/9 号之后需要验证开发者域(多租户需要验证了)
AzureADMyOrg:仅限应用注册的组织目录中的帐户(单租户)
AzureADMultipleOrgs:任何组织目录中的帐户(多租户)
AzureADandPersonalMicrosoftAccount:任何组织目录中的帐户 (多租户) 和个人 Microsoft 帐户 (例如,Skype、Xbox 和 Outlook.com)
PersonalMicrosoftAccount:仅个人 Microsoft 帐户
解决:
将signInAudience 改为:AzureADMyOrg或PersonalMicrosoftAccount
原因2:
包名中有安全组禁用的关键字
解决:
发邮件给客服,让管理者增加白名单
x.2 Could not find com.microsoft.device.display:display-mask:0.3.0.1
解决:
在工程的build文件中添加以下依赖
allprojects { |
工程地址
AriaLyy/KeepassA: Android Keepass Software based on Keepass database (github.com)
参考文档
Android oneDrive 集成(一)-- SDK申请
https://www.laoyuyu.me/2021/02/09/android/Android_OneDrive_1/