Javascript 无法使用Microsoft Graph API和Angular 4更新配置文件图片

Javascript 无法使用Microsoft Graph API和Angular 4更新配置文件图片,javascript,angular,microsoft-graph-api,Javascript,Angular,Microsoft Graph Api,我需要通过从本地上传来更新配置文件图片,然后使用MICROSOFT GRAPH API进行更新,我尝试了以下代码 <input type="file" accept=".jpg, .jpeg, .png"(change)="uploadImage($event.target.files)"> uploadImage(files) { let file = files[0]; if (file) { this.getBase64(file).then(

我需要通过从本地上传来更新配置文件图片,然后使用MICROSOFT GRAPH API进行更新,我尝试了以下代码

<input type="file" accept=".jpg, .jpeg, .png"(change)="uploadImage($event.target.files)">

uploadImage(files) {
    let file = files[0];
    if (file) {
        this.getBase64(file).then(data => {

            const headers = new Headers({
                'content-Type': 'image/jpeg',
                'Authorization': 'Bearer ' + token
            });
            const options = new RequestOptions({ headers: headers });

            this._http.patch('https://graph.microsoft.com/v1.0/me/photo/$value', data, options)
                .subscribe(res => {});
        });
    } 
}

getBase64(file) {
    return new Promise((resolve, reject) => {
      const reader = new FileReader();
      reader.readAsDataURL(file);
      reader.onload = () => resolve(reader.result);
      reader.onerror = error => reject(error);
    });
  }
它是基于文档的


如何从Angular应用程序中使用Microsoft Graph API更新配置文件,如何获取图像的二进制数据。提前感谢

您收到关于
smtpAddress
被“设置为空”的错误的原因是该用户没有Exchange Online邮箱。您只能将配置文件照片上载到具有有效Exchange Online邮箱的用户。不支持具有on-prem邮箱或Outlook.com的用户

从:

从Exchange Online访问的用户、组或Outlook联系人的个人资料照片。这是二进制数据,不是用base-64编码的


此外,还需要发送原始二进制文件,而不是图像的base64编码表示

谢谢你@Marc。是否有一种方法可以知道任何用户是否有Exchange Online邮箱?有几种方法。您可以看到使用Microsoft Graph的
/v1.0/me/ProvisioniedPlans
配置了哪些服务。您说得对。配置的服务会为用户返回一个空数组,我想知道是否有方法添加该服务。我需要更新my AZURE ACTIVE Directory中用户的个人资料图片您需要购买许可证/订阅并通过门户分配。
{
  "error": {
    "code": "ErrorInternalServerError",
    "message": "An internal server error occurred. The operation failed., The value is set to empty\r\nParameter name: smtpAddress",
    "innerError": {
      "request-id": "2532c086-a844-4d80-87e8-ad96545396c4",
      "date": "2018-03-15T11:38:33"
    }
  }
}