How do i fetch only internal messages from O365 using Graph API - azure

I wan't to fetch only messages that are only internal to organization.
Right now the way i see is fetch domains first then for each message see if from/sender domain belongs to that message , based on that differentiate.
But this is lengthy process and not a foolproof technique.
Is there any GRAPH API query i can use which readily provides this ?

It does not apear that the REST API queries for Office 365 includes this information directly in the messages. From the Version 2.0 And the Beta this is not included in message output.
However, it looks like you might be able to get it from the REST API via the headers.
Try the following query:
https://graph.microsoft.com/beta/me/messages?$select=internetMessageHeaders&$top=1
This takes top one messages and shows you the email header of the message.
In the header look for X-OriginatorOrg. The value should be the main domain of your organisation.
Alternatively you can look at the X-MS-Exchange-Organization-MessageDirectionalityheader. If the value here is Originating it should come from inside your own organisation.

Related

invalid/missing permissions trying to read leadgen data in webhook Facebook Graph API

I use the version 9.0 of the Grapph API. The leads retrieval was wroking ok, but the last 3 weeks I am not able to retrieve lead form information, using the endpoint :
https://graph.facebook.com/v9.0/${leadId}/?access_token=${process.env.FACEBOOK_PAGE_ACCESS_TOKEN}
The page access token as well as the facebook app has all the permissions like leads_retrieval, pages_manage_ads, pages_manage_metadata, pages_read_engagement, business_management, public_profile, pages_show_list.
When I create a lead form id from the page that is connected to the app, and then use the testing tool (https://developers.facebook.com/tools/lead-ads-testing) to check if the webhook works, everything works ok !!
The facebook and the connected page that are connected and were used for testing purposes, do belong in different businesses.
The problem is that when someone submits a lead from paid campaigs, then the following error message shows:
An invalid response was received from the Facebook API: {"error":{"message":"Unsupported get request. Object with ID '1223289864932223' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api","type":"GraphMethodException","code":100,"error_subcode":33,"fbtrace_id":"AIQ5Q-yJo249IZwdn10dfhi"}}
Is there an error in the set up of the whole system? Something that needs to be changed? Why suddenly did it stop working ?

Does the DocuSign Intermediate API plan let me use the API to get PDF and form fields?

I tried calling DocuSign sales and support (transferred around 3 times) and no one could give me a straight answer on this. Their "support" actually told be to try stackoverflow, so here I am...
I'm looking at their API pricing levels here: https://www.docusign.com/products-and-pricing/api-plans-b
If I have the Intermediate API, can I make the following API requests?
GET /restapi/v2.1/accounts/{accountId}/envelopes/{envelopeId}/documents/{documentId}
GET /restapi/v2.1/accounts/{accountId}/envelopes/{envelopeId}/form_data
The part that's throwing me for a loop is the DocuSign Connect feature in the Advanced API plan. The description of it is:
The DocuSign Connect module lets you configure webhooks for envelope events and recipient actions for some or all users in your account. It can also be used to transport the completed documents back to your app or website and to retrieve any form field data entered by your recipients.
I don't need the webhooks, but I need to be able to get the completed documents as PDFs and get the form field data. Do I really need the DocuSign Connect feature for that?
You will be fine with the intermediate plan. Here is the basic distinction between polling and Connect - With Connect, we will proactively notify YOU when key envelope events occur.
Otherwise, it's up to you to call GET /envelopes and/or GET /form_data to retrieve that information. Be wary of the resource limits when you poll.
As a quick aside, instead of making two requests to retrive that information, just make one - GET /envelopes?include=recipients,tabs. This will provide you all the information you seek in one request.
The important excerpt from that guide:
You may not exceed one GET request per unique envelope endpoint per 15
minutes. If you exceed this limit the request will not fail, but it
will be flagged as a violation of rate limits which can cause your app
to fail review to go-live review.
For example, the following transactions violate API rules due to the repeated GET requests to the first document and second recipient:
[12:00:00] POST /accounts/12345/envelopes
[12:01:00] GET /accounts/12345/envelopes/AAA/documents/1
[12:02:00] GET /accounts/12345/envelopes/AAA/recipients/2
[12:03:00] POST /accounts/12345/envelopes
[12:04:00] GET /accounts/12345/envelopes/AAA/documents/1 *
[12:05:00] GET /accounts/12345/envelopes/AAA/recipients/2 *
However, the following set of requests comply with API rules and limits and would not be flagged by the platform:
[12:00:00] POST /accounts/12345/envelopes
[12:01:00] GET /accounts/12345/envelopes/AAA
[12:16:00] GET /accounts/12345/envelopes/AAA
[12:17:00] GET /accounts/12345/envelopes/AAA/documents/1
[12:32:00] GET /accounts/12345/envelopes/AAA/documents/1
[12:40:00] PUT /accounts/12345/envelopes/AAA/recipients/1
[12:41:00] PUT /accounts/12345/envelopes/AAA/recipients/1

"Request a Web Hook" Form - Filters?

The Evernote documentation on web hooks states the following:
If your service only cares about some notes, we can configure a filter on your API key. Notifications will only be sent when the note matches the filter. For example, the filter resource:image/* causes notifications to be sent anytime a note containing at least one image attachment is created or updated. The filter is configured on your API key, so it is the same for all users. The filter string supports our full search grammar.
This is great, except that the Webhook Request form doesn't have any input to specify a filter.
How do we make a request with specific filters?
If we have multiple environments (dev, stage, prod), is it okay to make a request for the same API Consumer Key but for different URLs?
I got a response to my webhook request via email, at which point they asked if I needed the webhook to point to the sandbox or production environment. In my response, I also mentioned the filter I would like applied, and they proceeded to make the webhook the next day. Overall it took about a week and a half to get it setup.

Add special via foursquare api, got code 200 but special doesn't show up

I am trying to add a special via the foursquare api Add special endpoint.
I am generating a proper POST request and getting a similar response to what the api should return. But it still wont show up on the specials on foursquare.
Do I need to add a campaign too for it to show up?
This is the response object I am getting:
{"meta":{"code":200},"notifications":[{"type":"notificationTray","item":{"unreadCount":0}}],"response":{"special":{"id":"51ed8c2a498e821be0469850","type":"friends","status":"New
- in review","count1":10,"name":"Friends Special...!","text":"Everyone gets free cookies??","unlockedText":"hgc","autoRedeem":false}}}
Any ideas on what needs to be done?
PS: I am able to add a special manually on foursquare!!
This venue is an office and according to this api doc offices and homes aren't allowed to add specials. This is a bit of a conflict.
Is it that offices are not allowed to add specials only via the API since I am able to create a special manually on foursquare.
Alright so, got the answer.. Create a special then create a campaign works!!
But I'm still wondering how I was able to add a special when the documentation clearly says that homes and offices aren't allowed to do so!

No source parameter in real-time response from API checkin

I have an app that
- initiates checkins via the API
- receives checkin data via the push mechanism
The JSON object returned by an API call contains a source parameter denoting the app. [This actually seems unnecessary, since my app is initiating the API call...]
The corresponding real-time push response sent to my app does NOT have the source parameter included. Why is that?
I'm attempting to filter out the push data related to my app's checkins, and the easiest way would be to inspect source parameter. [I could also inspect the checkin ids, and watch for duplicates in the two paths; but that seems unnecessary if the source parameter was always included.]
Unfortunately, that particular field isn't currently passed along in our Push API. What exactly are you trying to do?
If you're looking to get real-time notifications about your own app's check-ins, it seems like you don't really need foursquare's push API? You could just have your app send-up the info you want to your own servers at the same time (or immediately after) you check in the user on foursquare, so that you still get real-time info.
If that doesn't work for you, if the user has authorized your application (which will be the case if you're using the User Push API), you can query our check-in detail endpoint (https://developer.foursquare.com/docs/checkins/checkins) to get that info, and filter away the check-ins you're not interested in.

Resources