Automatic response when file is added to folder (Dropbox API) - node.js

So once the User has been authenticated and given an access token,
I want the user to be able to externally add a file into a Dropbox folder for example:
the user goes to dropbox.com, logs in and adds a new file called Dogs.png to a folder called Dogs
Then I want use the Dropbox API to somehow tell by backend that a file has been added to the folder Dogs, and then send some information about that file (e.g. filename) to the client.
This is a very conceptual post i'm quite new to these technologies, what's the best way to handle this problem, or am I thinking about it the right way?

If you want your app's server to be notified of changes in the accounts of users who have connected to your app, you should use the Dropbox webhooks feature. The documentation there covers how to register a URI for your server where Dropbox will send notifications for changes.
Note that those webhook notifications only tell when something has changed for a particular user, but not what has changed. To find out what changed, you can then call the Dropbox API, e.g., the /2/files/list_folder[/continue] endpoints.

Related

How to serve an ics file through NodeJS API in a way that user can subscribe using URL?

So I have my ics file in Google Cloud Storage and I would like to serve it through my API so I don't have to make the ics file public. However, I am not sure what is the right way to do that so that the user can put the link to my api call in their Google Calendar as a webcal link to subscribe to the calendar.
Is this possible or do I have to provide a direct link to the ICS file for the user to be able to subscribe to the calendar? If it is possible, how would I go about serving the file in NodeJS?
Example:
https://storage.googleapis.com/example/calendar.ics would be able to be served through https://api.com/example/userID/calendars
webcal://api.com/example/userID/calendars would then be used in the Google Calendars to subscribe to the calendar
So I had two options available to me:
Change the access to the ICS file to public then share that URL to the user. However, this method would not allow me to dynamically change the file in the case that I would want to delete or change the file name.
Serve the ICS file through my API - the method I had originally asked about in the original post.
So for method 2, I basically just had to do gcs.bucket('bucket_name').file('file path to ics file in bucket').download((error, content) => res.send(content))

Get user performing action in Sharepoint CSOM

We are using SharePoint client object model (CSOM) and REST/OData endpoints to retrieve/manage data on sharepoint.
Is there anyway to get information on the user performing the MOVE on a file (for example, move file from folder A to folder B within same site collection)? When I use this REST API call before and after the move, Author and Editor remains the same even though a completely different user moved the file from folder A to folder B. SPChangeItem does not seem to have any members with this information either.
https://{site_url}/_api/web/GetFileByServerRelativePath(DecodedUrl=#fileUrl)?$expand=Author,ListItemAllFields,ListItemAllFields/ParentList,ListItemAllFields/ParentList/ParentWeb&$select=UniqueId,Author/LoginName,Author/Email,Author/Id,Editor/LoginName,Editor/Email,Name,UserName,ServerRelativeUrl,MajorVersion,MinorVersion,Length,ListItemAllFields&#fileUrl={url_encoded_file_path}
Is there anyway to get logged in user while using REST API?
When I use this REST API call, Id returned is the user corresponding to Bearer accesstoken.
https://{site_url}/_api/Web/CurrentUser?$select=Id
When moving a file to another folder, the metadata including author/editor is remained the same one, what changed is only the location. This is by designed.
If we want to know the user who performed this operation, we could check the version events of the file as it will immediately prompt an modification event when moving a file.
FileVersionEvent
Rest API endpoint:
_api/Web/GetFileByServerRelativePath('filepath')/VersionEvents
Thanks

How to change Share text on Invite Family and Friends

I am looking to re-brand the Mesibo app https://github.com/mesibo/messenger-app-android/
Mesibo docs says we can change everything. However I am unable to find a way to change small things where it says "Mesibo".
For example on the Invite Family and Friends screen, it shows Mesibo name its links to download Mesibo app. Which of course we need to change to ours.
How can we do that?
Project is compiled and runs all good.
I guess you already find by yourself. But if not, this information and more comes from backend API server code. Check out API server code: https://github.com/mesibo/messenger-app-backend/blob/master/api_functions.php and change response text, or you can overwrite Mesibo server answer in application.
$invite['text'] = 'Hey, I use Mesibo for free messaging, voice and video calls. Download it from https://m.mesibo.com';

MS BotFramework Temporary token issue in WebChat URL

I have developed a chatbot using Microsoft BotFramework and node.js and deployed it in webchat. As per this documentation, it is written that the bot's secret 's' can be replaced with a temporary token 't' which is valid for one conversation only.
But the problem is the life span of this token is 30 minutes and within this time window, if some intruder accesses the entire URL: "https://webchat.botframework.com/embed/YOUR_BOT_ID?t=YOUR_TOKEN_HERE&userid=some_user_id" then it is just a child’s play for him to get all of the user’s data because it mimics the chat of the actual user in the other machine.
Is there anything in the BotFramework (apart from DirectLine) that can be done that restricts the URL with the same token to be opened in another machine?
There is an issue on GH which is facing the same event with you, and with the comments, we can found that this situation will not be changed currently.
However, we can get some hints from the comment:
Ultimately, you can't hide the secret/token from clients.
If you want to remove it from the URL, you can host the JS control on your own.
If you want to remove it from page source, you can pass the value in a cookie >and read it in JS in your webpage.
However, in all cases, the value will be available in memory.
I think you can build another simple web site yourself as the bridge from the iframe and yout bot application. You can restrict your user whether is unique in this website's session. And also you can verify your user before instantiate the Bot WebChat.

Api to access Conversation History and In Place Hold for Office 365

We are trying to access the Conversation History in Office 365 for accessing the chat history.We are using the Rest Apis provided in https://msdn.microsoft.com/en-us/office/office365/api/API-catalog#Outlookmail . However , we are unable to get the folder id of the folder Conversation History . As a result , we are not able to fetch the mails under Conversation History. Is there a way to get access to the chat history under the folder "Conversation History ?
We are also , interested to get the data for chats which might be deleted by mistake by the users from Conversation History. Hence , we are looking for getting the data for in place hold users as well.
Please use https://outlook.office365.com/api/v1.0/me/folders/ConversationHistory/Messages to get the messages in ConversationHistory folder. For well known folder names (Inbox, DeletedItems, ConversationHistory etc.), we allow you to specify the folder ID or the well known name. The response always refers to the folder using the folder ID. We will look into why https://outlook.office365.com/api/v1.0/folders/ConversationHistory is failing.

Resources