I have a live facebook app, with proper permissions (verified with Graph API). I can create custom Dashboards with all the relevant data, and I get data in my Event Manager.
Current Permissions (Granted and Declined):
{
"data": [
{
"permission": "user_birthday",
"status": "granted"
},
{
"permission": "user_likes",
"status": "granted"
},
{
"permission": "user_gender",
"status": "granted"
},
{
"permission": "email",
"status": "granted"
},
{
"permission": "public_profile",
"status": "granted"
},
{
"permission": "user_friends",
"status": "declined"
},
{
"permission": "read_insights",
"status": "declined"
}
What I'm having an issue with is with the "Active Users" tab under "Activity". It keeps telling me there isn't enough data, however journeys for the same time period show over 17K journeys, my custom dashboards show similar numbers (19K) for impressions and logins.
What constitutes "Active Users" and why would I not be seeing anything under the Analytics component of the Analytics Explorer?
If there is another post or documentation that clarifies this, or if additional information is required, please let me know.
Thank you in advance
"User Activity" or "Active Users" actually only looks at a few events, which are listed here: https://www.facebook.com/help/analytics/1747887018756757
If you're not logging any of those events, then you won't see any data under "Active Users."
Related
I have a shared mailbox. The shared mailbox has an address SHAREDBOX1#mycompany.com. A handful of users have access to send emails on behalf of that mailbox. Via the Microsoft Graph API, is it possible to see which user sent an individual email via the sharedbox1 address?
With this use case in mind, it makes sense this would only be something we would check on outgoing messages.
Looking at the docs https://learn.microsoft.com/en-us/graph/api/resources/message?view=graph-rest-1.0 , the message properties specifically, is there any way to find which user sent an email on behalf of a shared mailbox?
For example, this is a (fake, all ids have been faked and sanitized) example email sent from a shared mailbox by a user on behalf of the shared mailbox represented in the the MS Graph API to 3 other users
{
"#odata.etag": "W/\"CQSJDKJGKJGROwCC\"",
"id": "AASDGSDGSDFMP4-RK_VSDFA1-bSDFSDFjB-JHUffy=",
"createdDateTime": "2022-07-06T16:50:55Z",
"lastModifiedDateTime": "2022-07-06T16:51:03Z",
"changeKey": "CSDFSDFSDGSFDSDFSFCC",
"categories": [],
"receivedDateTime": "2022-07-06T16:50:00Z",
"sentDateTime": "2022-07-06T16:50:45Z",
"hasAttachments": false,
"internetMessageId": "<PDSVSSVSVFGNFGHJ.something.prod.outlook.com>",
"subject": "RE: Work Stuff",
"importance": "normal",
"parentFolderId": "SDFFGAGSDFHSDFHDFNIUERGHSJHDNVUIAGNOIGAIU",
"conversationId": "JHFBVJHSBVJBVJHZVJ=",
"conversationIndex": "ETHYTJTJDGNRYJD",
"isDeliveryReceiptRequested": false,
"isReadReceiptRequested": false,
"isRead": true,
"isDraft": false,
"webLink": "https://outlook.office365.com/owa/?ItemID=SFBHWIUEwfADtegVAJBVSHFBVYUS&exvsurl=1&viewmodel=ReadMessageItem",
"inferenceClassification": "focused",
"sender": {
"emailAddress": {
"name": "SHAREDBOX1",
"address": "SHAREDBOX1#mycompany.com"
}
},
"from": {
"emailAddress": {
"name": "SHAREDBOX1",
"address": "SHAREDBOX1#mycompany.com"
}
},
"toRecipients": [
{
"emailAddress": {
"name": "Thad",
"address": "thad#mycompany.com"
}
}
],
"ccRecipients": [
{
"emailAddress": {
"name": "Chad",
"address": "chad#mycustomer.com"
}
},
{
"emailAddress": {
"name": "Vlad",
"address": "vlad#mycustomer.com"
}
}
],
"bccRecipients": [],
"replyTo": [],
"flag": {
"flagStatus": "notFlagged"
}
}
The email is from SHAREDBOX1#mycompany.com, being sent to Chad, Vlad, and Thad.
Let's say the user who actually sent the email on behalf of SHAREDBOX1#mycompany.com is brad#mycompany.com
I was hoping that the "sender" field would have contained brad#mycompany.com, as according to these docs https://learn.microsoft.com/en-us/graph/outlook-send-mail-from-other-user#send-on-behalf but that appears to not be the case. Both "sender" and "from" are always populated as SHAREDBOX1#mycompany.com (so that would indicate that the permission on the shared box for the users is "Send As" instead of "Send on Behalf")https://learn.microsoft.com/en-us/graph/outlook-send-mail-from-other-user#send-as
Assuming the permission is "Send As", is there somewhere else in the API where that information can be looked up?
Thank you!
Ok. So let me try to set the stage here.
I have a Microsoft Teams Application that has a Bot (Bot Framework v4) associated with it.
I have a use case where when a specific type of compliance activity happens, I need my bot to join the scheduled meeting and participate.
I am able to send a meeting invitation to an email account associated with the bot, and the bot accepts the invite.
According to this documentation, I should be able to join the meeting in progress.
(https://learn.microsoft.com/en-us/graph/api/application-post-calls?view=graph-rest-1.0&tabs=http) - Specifically "Example 5"
According to what I am reading, once you have the required Graph Permissions on your App Id that's associated, you only need 3 pieces of information to join the call (Passed in through a communications/call/create).
Post to https://graph.microsoft.com/v1.0/communications/calls :
Body:
{
"#odata.type": "#microsoft.graph.call",
"callbackUri": "https://bot.contoso.com/callback",
"requestedModalities": [
"audio"
],
"mediaConfig": {
"#odata.type": "#microsoft.graph.serviceHostedMediaConfig",
"preFetchMedia": []
},
"chatInfo": {
"#odata.type": "#microsoft.graph.chatInfo",
"threadId": "19:meeting_XXXXXXXXXXXXXXXX#thread.v2",
"messageId": "0"
},
"meetingInfo": {
"#odata.type": "#microsoft.graph.organizerMeetingInfo",
"organizer": {
"#odata.type": "#microsoft.graph.identitySet",
"user": {
"#odata.type": "#microsoft.graph.identity",
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"displayName": "Drew Jenkel"
}
},
"tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"allowConversationWithoutHost": true
}
}
Upon doing this, I'm getting a 403 / Forbidden:
{
"error": {
"code": "7505",
"message": "Request authorization tenant mismatch.",
"innerError": {
"request-id": "30739bd2-37b2-4bfc-9c52-36d72a4aa54e",
"date": "2020-06-08T16:47:36"
}
}
}
Has anyone seen anything this this?
We need help in understanding how Microsoft teams like and dislike works with BotFramework. When user clicks on like option provided in background we are getting reactionID but how do we get to know for which specific message user has given his feedback. Do we have this feasibility on Teams?
You can find it in the replyToId. Example from the docs:
The messageReaction event is sent when a user adds or removes his or her reaction to a message which was originally sent by your bot. replyToId contains the ID of the specific message.
{
"reactionsAdded": [
{
"type": "like"
}
],
"type": "messageReaction",
"timestamp": "2017-10-16T18:45:41.943Z",
"id": "f:9f78d1f3",
"channelId": "msteams",
"serviceUrl": "https://smba.trafficmanager.net/amer-client-ss.msg/",
"from": {
"id": "29:1I9Is_Sx0O-Iy2rQ7Xz1lcaPKlO9eqmBRTBuW6XzkFtcjqxTjPaCMij8BVMdBcL9L_RwWNJyAHFQb0TRzXgyQvA",
"aadObjectId": "c33aafc4-646d-4543-9d4c-abd28e4d2110"
},
"conversation": {
"isGroup": true,
"id": "19:3629591d4b774aa08cb0887902eee7c1#thread.skype"
},
"recipient": {
"id": "28:f5d48856-5b42-41a0-8c3a-c5f944b679b0",
"name": "SongsuggesterLocal"
},
"channelData": {
"channel": {
"id": "19:3629591d4b774aa08cb0887902eee7c1#thread.skype"
},
"team": {
"id": "19:efa9296d959346209fea44151c742e73#thread.skype"
},
"tenant": {
"id": "72f988bf-86f1-41af-91ab-2d7cd011db47"
}
},
"replyToId": "1:19uJ8TZA1cZcms7-2HLOW3pWRF4nSWEoVnRqc0DPa_kY"
}
Note, however, that this replyToId is specific to Teams and I don't believe it will persist if you set it yourself. Once you have that, you can update the activity.
If you're trying to analyze which messages are reacted to, you might want to log the outgoing activity's Id and Text in TurnContext.OnSendActivities. Then, when a reaction comes in, you can use the new Activity Handler to handle the message and add the reaction to your log. I believe this would come in OnUnrecognizedActivityTypeAsync. This is similar to the previous link, update the activity.
I would like to detect who is interacting with my agent.
For example I read that Alexa should be able to detect different users. The Google Home advertisement also let me think that it should detect who is talking. So how can I see who is talking?
In slack it seems to be easier since it is well known who is writing. However I cannot see who I get the current user.
I found out how to detect the user in slack: If you implement that hook you will get this example json:
{
"id": "f7912345-e21c-450f-a8ca-d01e38012345",
"timestamp": "2016-12-20T06:53:51.071Z",
"result": {
"source": "agent",
"resolvedQuery": "echo hallo welt",
"speech": "",
"action": "",
"actionIncomplete": false,
"parameters": {
"myInput": "hallo welt"
},
"contexts": [{
"name": "generic",
"parameters": {
"slack_user_id": "U0AT12345",
"myInput": "hallo welt",
"slack_channel": "D3DR12345",
"myInput.original": "hallo welt"
},
"lifespan": 4
}],
"metadata": {
"intentId": "06212345-06a0-40fe-bbeb-9189db412345",
"webhookUsed": "true",
"webhookForSlotFillingUsed": "false",
"intentName": "Response"
},
"fulfillment": {
"speech": "",
"messages": [{
"type": 0,
"speech": ""
}]
},
"score": 0.75
},
"status": {
"code": 200,
"errorType": "success"
},
"sessionId": "10612345-c681-11e6-af08-875120912345",
"originalRequest": {
"source": "slack_testbot",
"data": {
"channel": "D3DR12345",
"match": ["echo hallo welt"],
"text": "echo hallo welt",
"team": "T04H12345",
"type": "message",
"event": "direct_message",
"user": "U0AT12345",
"ts": "1482216830.000005"
}
}
}
So in case of slack you can access result->contexts[0]->paramaters->slack_user_id.
Google Home does not (at least currently) have a way to handle multiple users on the same device.
Google Home keeps improving (even removing development hurdles I've faced with their recent updates). It can now be trained to know your voice vs someone else's voice.
Tomato, tomahto. Google Home now supports multiple users
It is unclear from the API docs if it is possible to activate a user in Okta once they have been deactivated.
I can see that they go to a deprovisioned status when they have been deactivated, and I know that the user will be pulled from any applications (all according to the documentation), but my question isn't answered in the docs.
Could I make an update to set the status of the user to "STAGED" and with an updated Profile object, and then call activate?
In Okta Document I have seen "Deactivating a user is a destructive operation. The user is Deprovisionedfrom from all assigned applications that may destroy their data such as email or files. This action cannot be recovered!"
But I Deactivated the User and the Status was set to Deprovisioned, and by making Activate User Postman call I can set Provisioned Status again.
Here are the Okta Documentations call details to Deactivate and activate the user.
https://developer.okta.com/docs/reference/api/users/#deactivate-user
https://developer.okta.com/docs/reference/api/users/#activate-user
Simply try with postman It will work.
I don't know about the STAGED status, but I do know that you can re-activate a deactivated user.
Below is a GET request on a deactivated user:
{
"id": "00ueq20eKcFJlFzHz355",
"status": "DEPROVISIONED",
"created": "2018-08-01T08:29:38.000Z",
"activated": "2018-08-02T12:02:26.000Z",
"statusChanged": "2018-08-02T12:03:38.000Z",
"lastLogin": null,
"lastUpdated": "2018-08-02T12:03:38.000Z",
"passwordChanged": null,
"profile": {
"firstName": "Jim",
"lastName": "Bean",
"mobilePhone": "083274628237462",
"secondEmail": null,
"login": "jim.bean#test.com",
"email": "jim.bean#test.com"
},
"credentials": {
"provider": {
"type": "OKTA",
"name": "OKTA"
}
},
"_links": {
"activate": {
"href": "https://mydomain.okta.com/api/v1/users/00ueq20eKcFJlFzHz355/lifecycle/activate",
"method": "POST"
},
"self": {
"href": "https://mydomain.okta.com/api/v1/users/00ueq20eKcFJlFzHz355"
},
"delete": {
"href": "https://mydomain.okta.com/api/v1/users/00ueq20eKcFJlFzHz355",
"method": "DELETE"
}
}
}
By sending a POST request to https://mydomain.okta.com/api/v1/users/00ueq20eKcFJlFzHz355/lifecycle/activate you can activate the user.