全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworksBGVM服务器主机交流
IP归属甄别会员请立即修改密码Sharktech防护
查看: 10815|回复: 44

[经验] 手动修改Oneindex适配由世纪互联运营的国内版Office 365

[复制链接]
发表于 2018-5-22 01:28:21 | 显示全部楼层 |阅读模式
本帖最后由 滑稽 于 2018-5-22 16:27 编辑

先决条件:[del]有管理员权限[/del]经测试不需要使用管理员也可以创建Azure AD应用程序,请登录中国版Azure管理门户进行操作,在Azure AD中创建应用程序,创建应用程序所需授予的权限与国际版相同:
1) 创建应用程序时主页URL为你的oneindex安装地址(例如:http://ofb.yourcompany.com/)
2) Windows Azure Active Directory中的Sign in and read user profile
3) Office 365 SharePoint Online中的Read user files和Read and write user files
4) 新建一个API访问权限的密钥,有效期必须为一年(两年或永久会无**常授权)

修改内容如下:
1. 将lib/onedrive.php中的所有
  1. login.microsoftonline.com
复制代码
替换为
  1. login.partner.microsoftonline.cn
复制代码

操作理由:替换国际版OAuth地址为国内版OAuth地址
2. 将lib/onedrive.php第16行
  1. $resource_id="https://api.office.com/discovery/"
复制代码
替换为
  1. $resource_id="00000003-0000-0ff1-ce00-000000000000"
复制代码

操作理由:国内版暂无Office 365 API终结点,此处使用国内版Office 365 SharePoint的应用ID作为请求的resource_id传递
3. 将lib/onedrive.php中函数
  1. static function get_app_url($token)
复制代码
的返回值直接固定为你的OneDrive for Business的主机名,例如
  1. yourcompany-my.sharepoint.cn
复制代码

操作理由:国内版暂无Office 365 API终结点,无法自动获取OneDrive for Business的主机名,暂时只能手动指定
4. 将config/base.php中的
  1. 'client_id'
复制代码
赋值为你的Azure AD应用程序ID(不是对象ID)
  1. 'client_secret'
复制代码
赋值为你新建的API访问权限密钥
  1. 'redirect_uri'
复制代码
赋值为你创建的应用程序主页URL
操作理由:使用自己的Azure AD应用程序,目前还没有类似国际版的公用token获取应用,坐等其他大佬发布
5. 其余安装步骤与国际版相同

参考资料:
https://msdn.microsoft.com/en-us/office/office365/api/o365-china-endpoints

附件是按照上述说明修改后的适用于由世纪互联运营的Office 365的oneindex,只对lib/onedrive.php做了必要的修改(见上文修改内容部分),安装使用时只需配置config/base.php中的参数。

oneindex-21vianet.zip

42.73 KB, 下载次数: 471

适用于世纪互联运营的Office 365的oneindex

 楼主| 发表于 2018-5-22 09:32:56 来自手机 | 显示全部楼层
qwwujh 发表于 2018-5-22 04:53
那么。。。有世纪全局怎么进AD

登录管理员界面https://portal.partner.microsoftonline.cn/AdminPortal/Home,在左侧导航栏最下方有一个折叠起来的“管理中心”,展开它,点击“Azure Active Directory”进入。

点评

为技术大佬点赞!!!  发表于 2018-5-22 10:10
 楼主| 发表于 2018-5-22 01:30:11 | 显示全部楼层
本帖最后由 滑稽 于 2018-5-22 01:47 编辑

自沙占位
问:resource_id处是否能使用自己创建的Azure AD应用程序?
答:似乎不能,错误信息类似于invalid_grant,The user or administrator has not consented to use the application with ID 'app-id'. Send an interactive authorization request for this user and resource. 你可以尝试去解决这个问题,但使用Office 365 SharePoint Online的应用程序ID一定不会报错
发表于 2018-5-22 01:30:46 | 显示全部楼层
感谢大佬,解决了我的诉求
发表于 2018-5-22 01:43:00 | 显示全部楼层
可以的,正好有世纪互联,可以试试
发表于 2018-5-22 01:55:07 | 显示全部楼层
感谢大佬分享                 -    -          紫薯布丁不能少
发表于 2018-5-22 02:09:29 | 显示全部楼层
可以,感谢大佬分享
数字补丁1
发表于 2018-5-22 04:53:46 来自手机 | 显示全部楼层
那么。。。有世纪全局怎么进AD
发表于 2018-5-22 08:13:13 | 显示全部楼层
本帖最后由 zephyr 于 2018-5-22 09:06 编辑

感谢大谢分享,有搭成功正常显示的兄弟吗?我搭的目录列表显示不了
发表于 2018-5-22 09:10:35 | 显示全部楼层
本帖最后由 donwa 于 2018-5-22 09:16 编辑

楼主帮我测试下,我没有世纪互联账号。为了支持个人账号,我把api改成graph了。

https://github.com/donwa/oneindex/tree/version3

把index.php 第8行的 // 删掉

@滑稽 @cirno

点评

不知道我之前提的内个bug大佬改没有,就是有&这个符号的文件或文件夹打不开。可以转下编码  发表于 2018-5-22 11:34
厉害了大佬,支持个人账号!  发表于 2018-5-22 11:32
个人帐号(盯  发表于 2018-5-22 10:34
发表于 2018-5-22 09:13:30 | 显示全部楼层
厉害厉害,手里的花送你
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|全球主机交流论坛

GMT+8, 2020-8-10 19:31 , Processed in 0.067001 second(s), 9 queries , MemCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表