Anyone has any idea what is the vCard syntax for Instant Messaging to use when importing the vCard into Google Contacts? or Google Contacts ignore and does not allow Instant Messaging data from vCard to be added in the record?
Google Contacts CardDAV use vCard v3.0 encoding format as stated in https://tools.ietf.org/html/rfc6352.
Tried importing a vCard 3.0 with the following Instant Messaging syntax but could not work
- IMPP:aim:johndoe#aol.com (This syntax works when the vCard is imported into iOS)
- IM:aim:johndoe#aol.com (Tried this because Google Contacts API use IM)
If I manually input the Instant Messaging field data via editing of record in the mobile phone, it works. It works too when manually input data in Google Contacts web UI.
Tried exporting a record from Google Contacts with Instant Messaging field, the exported vCard does not contain data for the Instant Messaging field.
Related
I was wondering if there is a way to automatically (or on a trigger) delete emails from a Google Group.
I use a Collaborative Inbox Group for archiving automated emails.
I looked at the Google Apps Script overview for Google Groups, but I don't see anything. It only seems like you can do this from GmailApp...
I also read this thread from 2012 but nothing helpful there
Answer:
Programmatically this isn't possible.
More Information:
The GroupsApp class of Apps Script only has read methods available for use - there is not a way of executing any write data using the class - for example deletion of emails.
Emails are sent to everyone in the group when a post is made (as per subscription settings). If you want the Email to be deleted then as you have already pointed out, you will need to use GmailApp to delete it from the recipients' inboxes.
In short: All mailbox manipulation must be done using the Gmail API (or GmailApp).
Feature Request:
You can however let Google know that this is a feature that is important for access to their APIs, and that you would like to request they implement it.
Google's Issue Tracker is a place for developers to report issues and make feature requests for their development services, I'd urge you to make a feature request there. The best component to file this under would be the Admin SDK component, with the Feature Request template.
Question:
Is it possible to access the appProperties field in a Google Drive document via an unauthenticated user (i.e., via API Key or other method rather than Oauth)?
Background:
I have an app that works as a live document editor. It authenticates users via OAuth and allows them to save those documents to their google drive, and later re-open them in my app (google file ids are saved in my database and will load the document text into my app). Create()-ing and Get()-ing these files works fine as long as the user is signed in, and I have the "appProperties" field storing a couple of additional key metadata items.
As a next step, I would like to allow users to mark a document as "public view", and provide read-only access to their file, even for non-logged-in users. In my head, the flow would work as follows:
User_A authenticates with OAuth and creates a document, saved to their google drive.
User_A presses a button in my app, which sets the google document to a public sharing mode?
App generates a "viewer" link that User_A can share with his friends.
User_B does not have a Google account, but visits the "viewer link", and my app looks up the appropriate google document (using API key? since User_B is not logged in)
Document is loaded into my app for viewing.
This seems to mostly work; I can read the file metadata just fine using the API key, and even get the file contents. Side Note: Why do we need the API Key at all, given the quote on the google drive api page: "Note: Authorization optional."
However, the "appProperties" field always returns empty when using the API key!
Edit: After further searching I am just more confused. The closest answer I could find was from this related question here on stackoverflow:
It's very simple. appPropperties is a private field and is available only to the application that added it.
Based on this, it seems Google Drive is treating requests from my app API Key and requests from OAuth users on my app as two separate apps?
Further, I would eventually like to allow users to collaborate on a single document, owned by one user. So instead of just providing a read-only "view" link, they could generate an "editor invitation" link that would allow an authenticated user (User_B gets a google account now) to be added as an authorized collaborator (but not simultaneous editing) on the original (User_A's) document. Is that even possible?
Note I am using the Node.js google api.
This might be a bug:
appProperties are app-specific properties attached to a file. Any call from this app should be able to access them. Therefore, I think calls from this app using an API key should be able to retrieve these properties.
I could reproduce this behaviour: appProperties are populated when using OAuth, but not when using an API key, even though both are created from the same GCP project.
I filed a bug:
After researching this issue, I think this might be a bug. Therefore, I decided to file a bug on Issue Tracker:
appProperties are not populated when accessing a public File using an API key
To anyone affected by this, I'd suggest to click the top-left star in order to keep track of this and to help prioritizing it.
Reference:
Add custom file properties
Our solution needs to understand Exchange Fast Transfer Stream like the m:data at below for calendar:
<m:ExportItemsResponseMessage ResponseClass="Success">
<m:ResponseCode>NoError</m:ResponseCode>
<m:ItemId Id="AAMkAGYzZjZmRiUsidkC+NAAAAY89GAAA=" ChangeKey="FwAAAA=="/>
<m:Data>
AQAAAAgAAAAAAAAALgBlAHgAdABlAHMAdAAuAG0AaQBjAHIAbwBzAG8AZgB0AC4A
YwBvAG0AAABTAE0AVABQAAAAVQBzAGUAcgAyAEAAYQB1AGoAaQBuAGcALQBkAG8AbQAuAGUA
eAB0AGUAcwB0AC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAAALCE/jlMAAAAVQBzAGUA
cgAyAEAAYQB1AGoAaQBuAGcALQBkAG8AbQAuAGUAeAB0AGUAcwB0AC4AbQBpAGMAcgBvAHMA
bwBmAHQALgBjAG8AbQAAAAMAADkAAAAAAwD+DwYAAAADAARAAwACQAMADkA=
</m:Data>
</m:ExportItemsResponseMessage>
I found out that MS protocol document around this [MS-OXWSBTRF]: Bulk Transfer Web Service Protocol, however it doesn't talk about how to parse the m:Data element. I did base64 decoding on it and it would become partially readable although not all the information though. I also found this link Exchange 2010 EWS ExportItems Data field where a parser was written by Glen Scales although it is not available at CodePlex any more. I also found out outlook redemption could import this into outlook although I didn't see if it could parse it and make it available for our program to use. Plus it would require outlook installation.
Any insights would be highly appreciated.
[Update on Aug 27]. Our goal is to be able to move calendars from other platforms such as google and yahoo into Exchange Online. When we created the appointment for both organizer and attendee via EWS, we are facing some challenges in reestablish the relationship and we are seeing this issue when organizer sends update to attendee.
Basically attendee would see the message "The meeting request was updated after this message was sent. You should open a later update or open the item on the calendar" for both update and cancel message. Any insights here for what MAPI properties to fix would be greatly appreciated as well.
However we are able to move calendars successful with Exchange Web Services export and import via FTS and that is why we are looking for how to generate FTS stream via Outlook Redemption and then use EWS to import those FTS data into Exchange Online side.
However if outlook redemption could allow us to import ics file directly into end user mailbox, that would be even better where we found out that service account needs full access to all mailboxes. From my manual testing, manual importing ics files into both organizer and attendee mailbox are able to re-establish the relationship. Again, it would be really appreciated for any suggestions for above "The meeting request was updated after this message was sent. You should open a later update or open the item on the calendar".
The format is indeed undocumented. It is essentially a list of properties separated by page breaks (to be able to send/receive it in chunks while parsing).
Redemption (I am its author) supports that format through RDOMail.SaveAs / Import; the format type is olFTS.
You can also see the FST data in OutlookSpy (I am also its author) - click GetItem button on the EWS section of the OutlookSpy ribbon, go to the ExportItems tab. To import an FTS stream, click GetFolder | UploadItems.
Is it possible to access the date of a Gmail snooze through the API? I came accross a hack in stackoverflow that allows users to search for which emails are snoozed via a secret label search “label:snoozed”, but lables dont normally have an associated date, especially one that will return to the inbox in the future.
Im trying to create a web routine that syncs a todo list with emails and want to the due date to automatically update with when the snoozed email will re-appear.
Is this possible with any API or developer resources google offers?
No, you can’t retrieve the date of a Gmail snooze using the API.
There is a Feature Request already reported for this behavior on Issue tracker:
https://issuetracker.google.com/issues/109952618
At the moment you can only list them and retrieve the messages that has this label ‘snoozed’ active on them:
GET https://www.googleapis.com/gmail/v1/users/me/messages?q=label%3Asnoozed
I'm currently working on an application in titanium appcelerator, alloy - where I'm pulling data from wordpress via rest api.
My problem now is that I need to get the data from the the users of the of the wordpress site. Info like name, email ect.
Anyone ever tried or know how it's done? The end tag: /users? Doesn't seems to be enough
In accordance with official documentation on WP-API docs data that you need is not accessable through standart API requests and endpoints (it is only "visible" during editing).
But you can create your own route and using internal API/hooks to get all data and return it in json format in prefered way (see Adding Endpoints section on provided before site).