Forum Widgets
Latest Discussions
Facing issue for Outlook calendar Sync with PHP
When using Microsoft Graph Explorer, and making request, it’s returning the events data correctly. But when in code we generate access token, it’s not able to make request and there is some permission issue, So, the access token we are generating through code as per the official Microsoft documentation, isn’t having the required permission, even though we are specifying the required permission array as scope when making request for access token. Below is the code, I am using public function authorize() { $auth_url = $this->Microsoft_calendar_model->createAuthUrl(); redirect($auth_url); } public function createAuthUrl() { $authorize_url = "{$this->auth_base_url}/{$this->tenant_id}/oauth2/v2.0/authorize"; $queryParams = http_build_query([ 'client_id' => $this->client_id, 'response_type' => 'code', 'redirect_uri' => $this->redirect_uri, 'scope' => implode(' ', $this->scopes), 'response_mode' => 'query', 'prompt' => 'consent' ]); return "{$authorize_url}?{$queryParams}"; } // User is getting prompt for permission consent and even though accepting all permissions isn't working public function callback() { $code = $this->input->get('code'); // I am getting the code here. $access_token = $this->microsoft_calendar_model->fetchAccessTokenWithAuthCode($code); } Issue occurs in the below function public function fetchAccessTokenWithAuthCode($code) { $token_url = "{$this->auth_base_url}/{$this->tenant_id}/oauth2/v2.0/token"; $client = new \GuzzleHttp\Client(); $response = $client->post($token_url, [ 'headers' => [ 'Content-Type' => 'application/x-www-form-urlencoded' ], 'form_params' => [ 'client_id' => $this->client_id, 'client_secret' => $this->client_secret_value, 'redirect_uri' => $this->redirect_uri, 'code' => $code, 'grant_type' => 'authorization_code', 'scope' => 'offline_access Calendars.ReadWrite' ] ]); $tokenData = json_decode($response->getBody()->getContents(), true); $tokenContext = new AuthorizationCodeContext( $this->tenant_id, $this->client_id, $this->client_secret_value, $tokenData['access_token'], $this->redirect_uri ); $graphClient = new GraphServiceClient($tokenContext, $this->scopes); $events = $graphClient->me()->calendars()->byCalendarId('primary')->events()->get()->wait(); pre($events); } What I'm doing wrong, I can't figure it out anywhere?harshDec 10, 2024Copper Contributor31Views0likes0CommentsDoes MsGraph v5.61.0 and SharePoint have a bug?
Hello. It allows searching for folders in the "root" of a library using "tolower(Name) eq" but it does not allow the same in subfolders. I attach the method where I detected the problem. public async Task<string?> FolderExistsAsync(string listDriveId, string? folderParentDriveId, string subfolderName) { try { if (folderParentDriveId == null) // root { // Ok (best solution, search in server-SharePoint) DriveItemCollectionResponse? folderSearch = await _graphClient.Drives[listDriveId] .Items .GetAsync(q => q.QueryParameters.Filter = $"tolower(Name) eq '{subfolderName.ToLower()}'"); return folderSearch?.Value?[0]?.Id; } else { // Ok (bad solution, search in client) DriveItemCollectionResponse? childrens = await _graphClient.Drives[listDriveId].Items[folderParentDriveId].Children.GetAsync(); DriveItem? subfolder = childrens?.Value? .FirstOrDefault(item => item.Name?.Equals(subfolderName, StringComparison.OrdinalIgnoreCase) == true && item.Folder != null); return subfolder?.Id; //// Err: in Ms Graph v5.61.0?. ////var debugAux = await _graphClient.Drives[listDriveId].Items[folderParentDriveId].Children.GetAsync(); // Ok //DriveItemCollectionResponse? childrens = await _graphClient.Drives[listDriveId].Items[folderParentDriveId].Children // .GetAsync(q => q.QueryParameters.Filter = $"tolower(Name) eq '{subfolderName.ToLower()}'"); // Err: Microsoft.Graph.Models.ODataErrors.ODataError: 'Item not found' //return childrens?.Value?.FirstOrDefault()?.Id; } } catch { } return null; } Thanks.mariscos25Dec 02, 2024Copper Contributor18Views0likes0Comments500 Internal Server Error when trying to access the Microsoft Graph API for Viva Engage
I am experiencing an issue when trying to access the Microsoft Graph API for Viva Engage: https://learn.microsoft.com/en-us/graph/api/resources/community?view=graph-rest-1.0 Every time I make an API request, I receive a 500 Internal Server Error response. Here are the steps I have taken so far: Created an App Registration in Azure AD. Assigned the Community.ReadWrite.All permission as per the documentation. Ensured that the token we are using includes the correct and valid permissions. Despite completing these steps, the error persists. Below is a screenshot of the error encountered when testing the API using Postman: Are there any steps I might have missed, or is the API currently experiencing issues?freddyheryantoNov 26, 2024Copper Contributor43Views0likes0CommentsProblem when sending out the invitation
I'm facing an issue where the invitation isn't being sent to the recipient, even though the API request runs successfully. I followed the tutorial in the link below, but the response I received is slightly different. https://learn.microsoft.com/en-us/graph/api/driveitem-invite?view=graph-rest-beta&tabs=http It has the Invitation in the return response My response result doesn't have the invitation. As result I did no receive any invitation email. Anyone can help me this?ZiNov 21, 2024Copper Contributor42Views0likes0CommentsProblem copying file in SharePoint with Ms Graph v5.x
Hello. I need to copy a file in SharePoint, with Ms Graph v5.61 to a new folder (in the same library). The problem is that it copies but the process does not wait for it to complete and returns null, then I check and the file exists. I pass the code that I am using. public async Task<string?> CopyAsync(string listDriveId, string sourceDriveId, string destinationDriveId, string newName) { try { GraphSDK.Drives.Item.Items.Item.Copy.CopyPostRequestBody destinationInfo = new GraphSDK.Drives.Item.Items.Item.Copy.CopyPostRequestBody() { ParentReference = new ItemReference() { DriveId = listDriveId, Id = destinationDriveId }, Name = newName }; DriveItem? copy = await _graphClient.Drives[listDriveId].Items[sourceDriveId].Copy.PostAsync(destinationInfo); // Problem: "copy" is always null, but it is copied. When I check if the copied file exists, this file exists. if (copy != null) { return copy.Id; } } catch { } return null; } Can you help me? Thank you very much.mariscos25Nov 20, 2024Copper Contributor14Views0likes0CommentsPull out events from a calendar
Good morning, For a project I would have to pull out all the events from the different meeting rooms and integrate them into an HTML. However, when I search with https://graph.microsoft.com/v1.0/users/96d86e71-60d8-4d9a-acad-bd708de3e29a/events I get the error "The specified object was not found in the store." Could someone help me?lwiadmNov 18, 2024Copper Contributor17Views0likes1CommentPowerApp Graph Custom Connector without User Login
So I've been trying to create an app that will allow users to set and edit their own pronouns and then store those pronouns in Graph for use in Email Signatures and the such. I've been following this tutorial <How to add Azure AD directory extensions> in doing so, and I've basically got it down I've made the app and it works. However, it only works for me, i.e. admins. Whenever another user logs in and they are able to view their pronouns, i.e. GET graph.microsoft.com/me, but can't update their pronouns, PATCH graph.microsoft.com/me?$select=pronouns They get this error: My question is what can I do to get this app to be able to make the changes to this one specific item in graph, or allow for users to be able to edit this for themselves, or something that would make this work. Or perhaps I'm going about it the wrong way. Any help is appreciated, KamalaKamalaNov 14, 2024Copper Contributor24Views0likes1CommentTeams Missed Calls
Hi, I would like to know if there is a Graph API that gives me information if a peer to peer call between Teams users has not been successful. Or if a call has not been successful because the caller has abandoned the call, therefore it is a missed call. Regards. P.S. based on following documentation, I cannot find any information about what I'am searching for: List callRecords - Microsoft Graph v1.0 | Microsoft LearnGertDalPozzo7Nov 12, 2024Copper Contributor7Views0likes0Commentsget "First Published Date" through graph api lists
I have a number of SharePoint sites that publish news articles. One of the Key fields is "First Published Date". Which shows if the article is published or still in draft. I'm using GET https://graph.microsoft.com/v1.0/sites/{siteId}/pages$filter=promotionKind eq 'newsPost' which returns all the news pages in a site. there is an additional field called first published date I can see in the library. And I can see it using GET /sites/{site-id}/lists/{list-id}/columns { "columnGroup": "_Hidden", "description": "", "displayName": "First Published Date", "enforceUniqueValues": false, "hidden": false, "id": "c84f8697-331e-457d-884a-c4fb8f30ea74", "indexed": true, "name": "FirstPublishedDate", "readOnly": true, "required": false, "dateTime": { "displayAs": "default", "format": "dateTime" } }, But this column isn't returned using the sites/pages get request. I have also tried to force it to show by using $select=FirstPublishedDate but I get the error { "error": { "code": "BadRequest", "message": "Parsing OData Select and Expand failed: Could not find a property named 'FirstPublishedDate' on type 'microsoft.graph.baseSitePage'.", "innerError": { "date": "2024-11-07T13:30:16", "request-id": "1ba721f9-7ae0-43ab-8fe1-89a598245c02", "client-request-id": "a2fd61e8-c652-6b22-ea3f-037655568ddf" } } } how can I get the value of this field for a page?NickMumbyNov 07, 2024Copper Contributor30Views0likes0Comments
Resources
Tags
- api208 Topics
- Office Graph148 Topics
- developer106 Topics
- office 36591 Topics
- Graph API25 Topics
- App21 Topics
- Microsoft Graph14 Topics
- teams11 Topics
- graph10 Topics
- Microsoft Graph Api10 Topics