Couldn't retrieve teams from graph api - GetThreadS2SRequest Not found - microsoft-graph-api

I have a global administrator account who consented to have access to microsoft teams.
Then using graph api https://graph.microsoft.com/beta/groups?$filter=resourceProvisioningOptions/Any(x:x eq 'Team').
It returned the list of groups for this tenant.
However, when I called https://graph.microsoft.com/beta/teams/{id}. Some of the ids worked but some of them returned "error": {
"code": "NotFound",
"message": "Failed to execute Skype backend request GetThreadS2SRequest.",
"innerError": {
"date": "2021-05-17T06:04:19",
"request-id": "02f0a689-eca6-4b0d-9f0f-9d3e876d8f08",
"client-request-id": "02f0a689-eca6-4b0d-9f0f-9d3e876d8f08"
}
}
In addition, I used https://graph.microsoft.com/v1.0/groups/{id} and it returned the group information correctly.
So why graph api returned NotFound while it is a valid team group?
Thanks,
Karen

I guess there is some confusion around teams and groups.
Not all groups have a team. Any group that has a team has a resourceProvisioningOptions property that contains "Team".
Please note that the group has the same ID as the team. Every team is associated with a group but not vice-versa. When you get NOTFound, this is because that group doesn't have a team associated so accessing https://graph.microsoft.com/beta/teams/{id} will give you 404.
Thus,
https://graph.microsoft.com/v1.0/groups/{id}/team is the same as https://graph.microsoft.com/v1.0/teams/{id}.
Please refer to the Teams and groups section in this documentation to understand better.

Related

Group proxyAddress - Cannot Update from Graph API - Get Permissions Issue

It is unlikely that the account that I'm using to call Graph API doesn't have adequate permissions, but whenever I modify proxyAddress property of a Office 365 Group, I receive the following error,
{
"error": {
"code": "Authorization_RequestDenied",
"message": "The requesting application is not authorized to set group proxy addresses.",
"innerError": {
"date": "2022-01-17T12:01:39",
"request-id": "328be4b4-eb20-483e-adf7-bb02dfae3be2",
"client-request-id": "cabb604f-b315-be14-9ba0-9b0571ba7b1b"
}
}
}
If I PATCH without modifying the proxyAddress property at all, then I don't get this error, but whenever I modify the payload for proxyAddress at all, I get this error.
Example, PATCH:
{
"proxyAddresses": [
"SPO:SPO_269b2269-296d-43f4-b67e-88b6f32a7fcd#SPO_af6dd7da-54b5-411e-bab8-0b31f96e9e42",
"smtp:twg35#lincdev.com",
"SMTP:twg35aaa#lincdev.com",
"smtp:twg35#linc.onmicrosoft.com",
"smtp:twg35aab#lincdev.com"
]
}
I can change other properties and I can successfully set proxyAddress when I create the group, but updates always fail with error. Also, I've tried updating the mailNickname property and this has no effect. I can also update this value from the Office 365 Admin UI by modifying the email (primary / alias) and accomplish exactly what I'm after.
Can someone confirm that this isn't possible via Graph API or can you confirm / help me with the process or permission to accomplish this?
According the documentation group proxyAddresses is read-only property. It cannot be updated.

Solved: No results for /sites?search= using Microsoft Graph

Using Microsoft Graph, I want to search for SharePoint sites containing specific names and moreover I want to get a list of all SharePoint sites.
I am using the following URL in the Graph Explorer:
https://graph.microsoft.com/v1.0/sites?search=test
or
https://graph.microsoft.com/v1.0/sites?search=*
When using an account from Company A everything works. I receive a list of all results.
But when using an account from Company B, I get a 404 NOT FOUND response for all queries (although there should be multiple results):
{
"error": {
"code": "itemNotFound",
"message": "Item not found",
"innerError": {
"date": "2022-01-01T14:59:35",
"request-id": "xxxxxx",
"client-request-id": "xxxxxx"
}
}
}
Maybe it has something to do with the rights of the users?
I tested with "normal" users at both companies.
Edit:
I also get an error (403 Access denied) using the following url:
https://graph.microsoft.com/v1.0/sites/root
But when accessing a specific site by it's id, everything works.
Edit 2
I noticed a relationship with the permissions of the root SharePoint site. If the user has no permission for that site, the mentioned queries are not working. I need to contact the admin of the system to check my suspicion.

How to update onlineMeeting - Graph API Microsoft teams meeting?

I am trying to insert a teams meeting link into our emails that are sent out. I want to call the api to generate a teams meeting link, WHICH I can do. However, how do I update this meeting if the time needs to be changed or if new participants are added? I can't find anything on the Microsoft Graph API documentation.
https://learn.microsoft.com/en-us/graph/api/application-post-onlinemeetings?view=graph-rest-1.0&tabs=http
Only see get,create,delete options
Currently only create meeting event is exposed by Graph API.
PATCH /beta/me/onlineMeetings/{meetingId} appears to work for me, but /PATCH on the v1.0 endpoint returns an error:
{
"error": {
"code": "NotImplemented",
"message": "PATCH onlineMeeting is only supported in graph beta",
"innerError": {
"date": "2020-07-12T07:50:58",
"request-id": "0a1824d8-e329-452f-bc73-988d1de832ed"
}
}
}

Microsoft Graph - Why is root site read access needed to access subsite in another site collection?

I'm trying to access the items of a list that is a part of a nested subsite, like this:
https://{mytenant}.sharepoint.com/
vendorSiteCollection/
vendorAppSite/
vendorList
My test user has only Read permission on the vendorAppSite Subsite. I have removed read permissions from all other sites, including the root site collection at https://{mytenant}.sharepoint.com.
If I navigate to here in a browser:
https://{mytenant}.sharepoint.com/sites/{vendorSiteCollection}/{vendorAppSite}/Lists/{vendorList}/AllItems.aspx
Then I see the list, just as expected.
However, when I make this request in the Graph Explorer:
https://graph.microsoft.com/v1.0/sites/root:/sites/{vendorSiteCollection}/{vendorAppSite}:/lists/{vendorList}?$expand=items($expand=fields)
I get a 403 forbidden response:
{
"error": {
"code": "accessDenied",
"message": "The caller does not have permission to perform the action.",
"innerError": {
"request-id": "15e2087d-8ae5-46e3-abee-4ab165629dfb",
"date": "2018-04-05T12:08:16"
}
}
}
I would have expected to be able to read the list items via the API just like I can see the list items in the SharePoint Online UI.
How can I use the Microsoft Graph API to read the items when the permission levels are set like this?
Side note: When the test user has Read permission on the root site collection at https://{mytenant}.sharepoint.com, the API works as expected. But this workaround doesn't work for us since we don't want our users to have read access to the root site collection.
This issue seems to be fixed in the MS Graph.

Unable to update organization properties

I've encountered a problem while trying to update organization's properties using Microsoft Graph API. I've followed these docs and tried it in graph explorer.
My request looks like this:
{ "displayName": "My Company Name" }
Whatever I do I always get the following error:
"error": {
"code": "Request_BadRequest",
"message": "Specified HTTP method is not allowed for the request target.",
"innerError": {
"request-id": "dfd9ae19-2774-4b10-8d74-f6f6cd21f712",
"date": "2016-05-16T14:48:02"
}
}
What am I doing wrong?
I have tried in my test tenant and results in the same error.
https://graph.microsoft.io/en-us/docs/api-reference/v1.0/resources/organization
In the above document it is mentioned that we can update "marketingNotificationMails" and "technicalNotificationMails" properties alone through Update API. So I think you can't update the organization display name.
It does appear as though updates are limited on the organization entity. Please file a request to Uservoice to ask for this feature.

Resources