我们知道,OAuth2.0使用AuthCode获取AccessToken时,需要提供ResourceUrl作为参数。这个ResourceUrl表示你用这个AccessToken只能读取以ResourceUrl开头的URL资源。比如ResourceUrl = https://test.sharepoint.com, 那么获得的AccessToken只可以访问https://test.sharepoint.com/***。 如果你想用这个AccessToken访问https://test-my.sharepoint.com, 对不起你会得到一个401。
怎么解决?
方法就是用RefreshToken获得新的AccessToken,但ResourceUrl填写为新的地址。比如上述例子中,我们在用RefreshToken获取新的AccessToken时,ResourceUrl应该填写:https://test-my.sharepoint.com。
具体的介绍请参考MSDN:http://msdn.microsoft.com/en-us/library/azure/dn645538.aspx.