How to pull Defender (Microsoft 365) reports from Exchange Online Protection - windows-defender

Under the email collaboration in Defender365, there are a set of reports that report things such as malware detected in emails, spam blocks, etc... that I'd like to pull that aren't available on the two APIs https://api.security.microsoft.com/api/incidents or https://api.security.microsoft.com/api/alerts.
Is anyone aware of an API with which I can pull this raw data so that I can use it in my already existing data visualization tools? Much appreciated,.
I tried using the existing APIs but they didn't come back with the intended results and the documentation doesn't seem to point to where one can find this.

You may find something here:
https://learn.microsoft.com/en-us/microsoft-365/security/defender-endpoint/management-apis?view=o365-worldwide
Although I will say that after a quick skim, it doesn't seem that Microsoft exposes that data. Microsoft documentation surrounding this API also seems to be lacking. They will hopefully update it in the next few months as they feel the squeeze from their customers as they deprecate other modules/APIs.

Related

Does Google Data Studio have API functionality, and if not, will it in the near future?

I'm trying to automate a workflow using Google Data Studio. Requirements are simple - I need to be able to programatically copy a templated report (from a Python/Java application) and import/set a data source (Google Sheets doc) for that report. Nothing more fancy (no visualisation creation, formatting, or anything graphical, etc.).
Sources here, here and here (last two require Google Cloud Console account) suggest an API does exist (and detail a setup process to access it). However, after going through this setup process, I can find no details or documentation of any functionality, and consequently have been unable to progress.
Can anyone authoritatively state whether:
1. There does exist any API functionality for GDS? and
2. If not, are there plans to develop such? (since the Google links above suggest there is, I'm wondering if this means it's in the pipeline for near future).
The only directly related SO posts I can find are here and here. The first suggests there isn't, but doesn't account for the Google links I've provided above which suggest there is; the second doesn't really cover the same use case, so doesn't provide answers applicable here.
FYI - I've posted a Google Community forum post here asking essentially the same question.
If anyone is able to help out, that would be greatly appreciated :) Many thanks in advance for your time and help! :)
Fresh as of 2022-05-23
There does exist any API functionality for GDS?
Not in the way you are expecting. The three links you posted all refer to the current Data Studio API. The only things you can do with that API is view your Data Studio assets and update permissions. That's it. This API won't let you create/copy/modify reports or data sources.
If not, are there plans to develop such?
Not in the near future. You can make/vote for this feature request in the official tracker. More popular feature requests are usually prioritized in roadmaps.
That being said, a lot of the API use cases can be resolved using combinations of Community Connectors, config parameters, direct linking, viewer's credentials, Linking/Integration API etc.

Need somewhere to post form responses

I am trying to work out where to put the responses to a GravityForm that I have hosted on WordPress. GravityForms displays them as entry/detail which is not a good way to see how many of x people there are etc.
I need an excel-esqe grid that can be edited by multiple users, so I was thinking Google docs, but I would rather keep the data on my server.
My end users are not particularly IT literate so the front end needs to be quite user friendly.
Is there any solution that I can host on my server and post data in to? I was playing with the idea of writing the form responses to a separate WordPress table but I need a very easy way to edit them.
I'd be grateful to hear any feedback or ideas you have
Manual data copy
EtherCalc is good. The problem is how to get the data in and out of the spreadsheet,
if a manual export and import will work, then you can use EtherCalc.
EtherCalc is a google docs style spreadsheet, edited by multiple users.
You can host it on your own server.
Pay a developer to automate
As above, but pay a developer to automate the movement of data. Would take a few days of work.
Google docs form
I saw a google docs forms plugin that does this already. Maybe you saw that already.
EtherCalc forms feature.
I will add a forms feature to EtherCalc over xmas.

Google Adwords Keyword Tool API to automatically extract data onto a website

Im looking to use Google Adwords Keyword tool data on a website. Ive been looking around in the API and I cant find much to match what I need. I noticed a lot of keyword research tool websites use google as their main source for their information. How would I go about doing this and extracting the data and have it run on a website automatically so it wouldnt need to be updated manually each month?
you can use the Traffic Estimator service in the AdWords API:
https://developers.google.com/adwords/api/docs/reference/v201409/TrafficEstimatorService
Be warned that this is notoriously inaccurate (which is odd given that you would think Google had its own data to call upon!)
I use the TargetingIdea service in the AdWords API to generate lists of keywords to use for building AdWords campaigns. (https://developers.google.com/adwords/api/docs/reference/v201409/TargetingIdeaService.TargetingIdea)
First off you need an API key - they're not that easy to get and your app needs to offer a whole lot of features to meet the required minimum functionality - take a look here https://developers.google.com/adwords/api/docs/requirements
Once you've jumped over that hurdle you get the data from Google by sending a request to the service. That request includes some targeting criteria like location and language and also a "seed" keyword. You can also specify if you want closely related results or broadly related results.
For example if you sold tractors you'd put 'tractors' in as a seed keyword and then the API would return either closely related terms like 'tractors for sale', 'used tractor spares' etc or more broadly related terms like 'agricultural machinery'.

Can BigQuery's browser interface be white-labeled?

Like most people, we're pretty impressed with BigQuery. We're willing to put up with it being based on proprietary "Dremel" in exchange for not having to configure a ton of servers in our LAN, on EC2, or anywhere else.
The REST API is excellent, and we're incorporating that into our apps, but we still find ourselves using the BQ Browser interface as well. We'd like to incorporate something like a 'generic SQL window' into our app, without divulging that the backend is BQ or that data is stored in Google at all, for that matter. Does Google provide a way to use their BQ browser tool in a white-label manner?
Note also, that even extending access to the existing browser tool is problematic. It relies on user-accounts existing in one's own domain - something that can't be done, in our case, with a customer's email address. The REST interface solves this with service-level accounts, but that doesn't get you to the SQL window/browser tool.
If the folks at Google are listening (and I know that you are), consider the benefits of white-labeling the browser tool: I think you'd find a lot of software companies integrating it into their suites of products and, then, running circles around any Hadoop/CDH/EMR/Impala/Hive combination.
So, to summarize: How does a software developer import or emulate the BQ browser tool (with all it's autocompletes, query histories, etc..) in their own web-based app?
The initial version of the BigQuery web interface was considered just an 'example' UI that anyone could create themselves. It uses only the public BigQuery API to talk to BigQuery.
There are a couple of Google-internal things we've added since then, such as the current design of 'saved queries', and an auth shortcut so that users don't have to explicitly grant permission to the UI to access BigQuery data. But it is still mostly plain-ol-javascript talking to BigQuery via the REST API the same way anybody else does.
The javascript is obfuscated, however, but my understanding is that this is just for compression purposes so that it downloads more quickly.
The SQL highlighting is done by CodeMirror with special configuration for the BigQuery SQL variant.
I'll talk to the other members of the BigQuery team about open-sourcing the javascript code in the Web UI. It may be difficult to do at this point, but it doesn't hurt to have a conversation about it. I'll bring this up with the team and update this thread. The most likely answer will be "We'll think about it", but hopefully we can also think about it and start working on it too :-)
Let me know if that sounds like it would meet your needs. It might not solve the auth problems you mention, since your users likely won't have BigQuery accounts, but you may be able to solve that by proxying oauth2 access tokens.

How To Get Started Working with the Google AdWords API?

I'm a student working on a project related to SEO; I need to write an optimization tool, so I'm writing an application using C# and Windows Forms. The main part of the application is for keyword selection, and I want to use the Google AdWords API to obtain a list of keywords.
I downloaded the C# client library, but can't understand how to set up the project: I am getting the error:
"An API exception has occurred. See ApiExecption and InnerException fields for more details".
Maybe I have made a mistake when I edited the App.config file as I haven't changed anything else. Can anyone advise me where I should begin? I would be grateful to hear your ideas.
Unfortunatley, the AdWords API isn't as open as you might think: It's meant for ad agencies managing large accounts, or software vendors who want to build ad management platforms. You need to apply to Google for an API key to gain access; they used to give them out to nearly anyone with an account, and it took about 14 days to process the application. However, Google has got very strict about their terms and conditions over the past 12 months, and to put it simply, you probably won't meet them if you're building an SEO tool; even if you apply to build a full platform, you'll need to wait six to ten weeks for approval as they've got a huge backlog of applications to process at the moment.
As this is just a student project, you should actually be able to get away with just using the AdWords API sandbox, which is open to anyone with a Google account. This won't give you real keywords or stats, but would demonstrate your understanding of the platform.
Another option would be to check out the Ad Intelligence Service of the adCenter API; you'd still need to open an adCenter account (with a $5 activation fee), but you should be able to get an adCenter API key without waiting too long. The stats available from Microsoft won't be as extensive as what Google has to offer, but will still be relevant to the at least the US market. Also, being Microsoft, they've got a good range of C# examples.
You could use the sandbox, but it is good only for testing purposes. You won't get real values for traffic estimation and keyword ideas.
To use the sandbox, what you need is a Google account (your gmail account for instance). To initialize the sandbox,
In your App.config, put email/password/developerToken as your email / your password / youremail++USD (e.g. john.doe#gmail.com++USD)
Run the GetCampaigns.cs code example. It is under v201109/BasicOperations folder in the C# examples project. This will initialize the sandbox.
Run the GetAccountHierarchy.cs code example. It is under v201109/AccountManagement folder. This will give you 5 client emails and their customer ids.
Use one of these customerIds in the ClientCustomerId field of App.config.
Run any other code example.
The video is a bit outdated, due to recent changes in AdWords API, I need to update it.
you can find a very good article series about adwords api there: Google Adwords API
it is not that hard to learn how to use it! I think the API itself is very good documented and there is a good suppo from google.