Tenant Level Search For Outlook via Rest Api - outlook

Is there a way to search across all mailboxes in a tenant ? without specifying any particular user? My goal is to search for any test across all mailboxes of a tenant.
I came across this link a : http://www.sharepointtalk.net/2015/02/getting-emails-with-attachments-from.html which is using Sharepoint's search api to search on signed in user's mail boxes.
_api/search/query?querytext='contentclass:exchangeattachment'&properties='GraphQuery:ACTOR(ME)'
But I got this error :
{
"odata.error": {
"code": "-1, Microsoft.Office.Server.Search.REST.SearchServiceException",
"message": {
"lang": "en-US",
"value": "SPO graph API is deprecated."
}
}
}
If I remove the 'properties' from api call, there are no search results. Can we access and do we need any special permissions to use Sharepoint Search Rest API to search on outlook messages ? and can we search across tenant using this api
I know we can search on messages using this api graph api call :
https://graph.microsoft.com/v1.0/users//messages?$search=""
But I want the search to work independent of the signed in user. is this possible ? Thanks.

Please go through this document to know when you can get the data from /messages endpoint and yes you can use application permissions to look into messages without user login but its still individual mailboxes you can do but not at tenant level searching using Microsoft Graph.

Related

How to get the used storage of Gmail mailbox by using Gmail API?

I've looked in the Gmail API document to find API that allows retrieving the used storage of the Gmail mailbox.
As I searched, the used storage of mailbox (total size of all emails in a mailbox) can retrieve by calculating the sum of each email message's size.
However, this way is too slow when applying for a big mailbox.
So, I wonder that do we have another API from Google that allows retrieving the used storage of a Gmail mailbox?
Thank you.
You can get this formation with the Drive API v2
More specifically, with the method
About.
It will return you
{
"serviceName": "GMAIL",
"bytesUsed": "805949924"
}
However, keep in mind that Drive API v2 is outdated and might get
deprecated in the future.

Authenticate with Google Sheet API v4

I would like to connect and make request on a Google Sheet I've access with my personal Google account. I went on console.google.com and I created a new project for this purpose. I activated Google Sheet API too, and generated an API key.
I tried to use the Google Sheet v4 API with a curl request on a sheet:
https://sheets.googleapis.com/v4/spreadsheets/sheetId/values/Feuille%20!A1:D5?key=xxx
But the response I've got back is:
{
"error": {
"code": 403,
"message": "The caller does not have permission",
"status": "PERMISSION_DENIED"
}
}
Do you have any information on this issue? I tried to search on Google but no viable solution was answered for my purpose.
Thanks.
How about this answer?
Issue:
The reason of the error is as follows.
If you want to access to the Spreadsheet using the API key, it is required to publicly share the Spreadsheet.
API key can access to the publicly shared Spreadsheet with the GET method.
Solution:
As a test case, when you shared publicly your Spreadsheet, you can retrieve the values from the Spreadsheet using the endpoint.
If you don't want to share publicly the Spreadsheet, please use the access token retrieved from OAuth2 and service account.
References:
Using OAuth 2.0 to Access Google APIs
If this was not the direction you want, I apologize.

How to get server-side call to Google Places API to work?

I'm trying to get Place Detail via Google Places API as follows:
https://maps.googleapis.com/maps/api/place/details/json?place_id=ChIJLQUUOYZZwokR1BfSFbM-XB4&key=<<KEY>>
but I keep getting the following error (both in browser and server-side):
{
"error_message" : "This API project is not authorized to use this API. Please ensure this API is activated in the Google Developers Console: https://console.developers.google.com/apis/api/places_backend?project=_",
"html_attributions" : [],
"status" : "REQUEST_DENIED"
}
I created a brand new key without any restrictions (and Maps API is enabled in my google console). How do I get this to work??
The Places API is separate from the Maps API. Make sure the Places API is enabled in the developer console as well.

contacts count and users count are different between Graph API and outlook website

Firstly, I used Microsoft Graph API /me/contacts to get all contacts, and I got 6000+ contacts' info. But when I login https://outlook.office.com/owa/?path=/people and visited [Your Contacts] page to compared the contact number, there are only 5000+ contacts.
Secondly, same problem in users count, I used Microsoft Graph API /users to get all users' info, and I got 5000+. But when I go to https://outlook.office.com/owa/?path=/people and visited [Directory > All Users], the number is only 4000+
I guessed outlook had filter some contacts, but I don't know the the filtering rules.
I wanted to solve this problem, but I don't know how.
So can someone tell me the filtering rules or can I use Microsoft Graph API token to fetch datas from Outlook API directly?
So can someone tell me the filtering rules or
This answer need the guy from outlook team. Ignore now.
can I use Microsoft Graph API token to fetch data from Outlook API
directly?
No. Graph API token not the same as the pure Outlook API.
For the count issue, based on your project requirement to decide which to use. In other words, you can use your own filtering rules. In my opinion, use the data have more records, and then filter.

Google places api request denied error

I am using google palces api for autocomplete textview in my android project. I have enabled the api key. I am using a server key but all the time I have this error when I call the service through a browser :
{
"error_message" : "This API project is not authorized to use this API. Please ensure that this API is activated in the APIs Console: Learn more: https://code.google.com/apis/console",
"predictions" : [],
"status" : "REQUEST_DENIED"
}
And same error in android debugger.
As mentioned in the error, you have to go to the Google Developers Console, then open APIs & auth -> APIs and enable the Google Places API Web Service which include the autocomplete feature :
Find detailed information about places across a wide range of categories. Backed by the same database used by Google Maps and Google+, the Google Places API Web Service features about 100 million businesses and points of interest that are updated frequently through owner-verified listings and user-moderated contributions. Key features include autocomplete, search, place picker, photos and add place.
Hope that can help.

Resources