我有一个客户需要将文件自动上传到其组织的OneDrive目录。此上传需要完全自动化,并需要在没有任何人为干预的情况下运行。我已经阅读了大量的微软文档以及其他类似的问题,但我发现的所有解决方案都有一个步骤,需要用户被引导到登录页面。在我的例子中,没有用户,也没有浏览器。理想情况下,PHP SDK会有所帮助,但如果我可以通过纯HTTP请求来实现这一点,那也会起作用。我试过几个PHP SDK,所有这些都需要一定程度的人机交互。
irlmq6kh1#
我已经能够通过SharePoint使用SDK找到here来实现这一点。下面的代码,如果有人正在与此斗争。
define('MS_URL', 'https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token'); //Authenticate $guzzle = new \GuzzleHttp\Client(); $url = MS_URL; $token = json_decode($guzzle->post($url, array('form_params' => array('client_id' => MS_CLIENT_ID, 'client_secret' => MS_CLIENT_SECRET, 'scope' => 'https://graph.microsoft.com/.default', 'grant_type' => 'client_credentials')))->getBody()->getContents()); $access_token = $token->access_token; //Upload $graph = new \Microsoft\Graph\Graph(); $graph->setBaseUrl('https://graph.microsoft.com/')->setApiVersion('v1.0')->setAccessToken($access_token); $graph->createRequest('PUT', '/sites/'.MS_SHAREPOINT_BACKUP_SITE_ID.'/drive/root:/'.$new_filename.':/content')->upload($path_to_local_file);
1条答案
按热度按时间irlmq6kh1#
我已经能够通过SharePoint使用SDK找到here来实现这一点。下面的代码,如果有人正在与此斗争。