I would like to get into Plugin development using the Gmail API and as such I would like to ask those who already have experience in it a few questions.
What language / languages should I be familiar with? I'm not familiar with Python, PHP, or JavaScript. Will I need to pick up on these?
What level of control do I have on what my plugin can do? Can I for example change the interface or add shortcuts or RSS feeds as a sidebar?
I know a lot of the examples mentioned already exist but I would like to try my own hand at it.
Peter posted a solid list of the official Gmail APIs.
On the other hand, most of the major plugins that you may have heard about are browser plugins that just modify the page source directly, even though there's no official API for it. There used to be a GreaseMonkey API that was a good starting point, but that wasn't supported and no longer works. Best place to start is with a copy of Chrome, creating a content-injection plugin that works on the Gmail page.
Happy to provide some further details if you can clarify what you're going for since I went through this myself a few months back.
Related
I know you can extend Adobe Premiere Pro with some simple JavaScript. The problem with that link (which I got to through the official Adobe website), is that all of sample code links are outdated (they point to the wrong location of the file, to lines that aren't correct anymore).
The second paragraph instructs you to install a bunch of things, none of which seem like things you "install", and they mention ExtendScript, which I don't understand whether is already installed with my Premiere or not (it's not available on Creative Cloud, and also the links I found on Adobe's website for it are, again, dead). I keep searching online and finding dead links to tutorials that no longer exist. Really, dead links everywhere.
I'm an experienced developer with good JS background, I just want know what I need, some simple examples of basic usage to get me started and maybe working links to some cheat-sheet I can use when I'm looking for available functions.
Extendscript is the name of the old API for automating Premiere and other Adobe apps. It's built-in and can basically do anything that you can do with the GUI, and it's javascript-based.
There is an IDE for Extendscript, the Extendscript Toolkit (ESTK) which has a debugger and allows you to inspect data etc. It's perplexingly hard to find on the Adobe website; I found it by a duckduckgo search here, I installed it through the creative cloud desktop manager, though I'm not sure how you do that with the current version.
As far as documentation goes, you're right, it's dead link city. There is a Javascript Tools Guide included with the Extendscript Toolkit, on windows it's in C:\Program Files (x86)\Adobe\Adobe ExtendScript Toolkit CC\SDK\. That covers creating UI elements, but doesn't explain Premiere's object model. AFAIK there is no official documentation for this, you have to use the ESTK data browser to look for yourself.
The CEP extensions are a new development and allow for easier integration with the host. I think you already have all the documentation there is for it. I'd advise that you pester Adobe to make it easier for developers like yourself to create tools for their users.
Here is for anyone else who gets here from a Google search: You can also go to this link to download the ESTK: https://helpx.adobe.com/download-install/kb/creative-cloud-apps-download.html
Say, I want to develop an alternative spellcheck module to google docs.
This means that I have to get corrections from my backend, and color the misspelled text's background, and do a small popup bubble when user hovers over it, where I'd display the correction. (please mind that spellcheck is not the actual goal of my project, but it does address my problems in a more simplified way)
What are my options? Any ideas how to do this?
Few possible solutions I came up with:
Chrome extension vs Apps script
Chrome extension
pros: user has to grant permissions once, can freely traverse and append anything to dom via content script
cons: is a "hacky" way, if google changes classnames or js source, it would stop working, and also, reverse engineering google docs's editor engine is impossible
Apps script
pros: supported by google: if it works, I dont need to be afraid of docs updates
cons: it seems to me that I can't just fiddle with the dom (because of Caja compiler), has very limited support (if any) for custom highlighting or hover functionality.
As I see it, neither of these are perfect solutions for this project. What do you think? Any suggestions are very welcomed.
I know this is an old question, but I have recently gotten into the same problem, and believe I have a solution. So for future Googler's I will post my answer here.
My solution was to create a Chrome Extension and understand how the Google Docs DOM's are structures to interact with it.
You can find my code to work with the Google Doc DOM's here
In Apps Script you can't "fiddle" with the DOM and you won't be able to implement hover functionality. Also, a lame Highlighting would involve changing the current document itself (which would go to revision history, undo queue, etc)
Therefore, your only altertive is the Chrome Extension. But I agree with you on the cons. It is a super hard task that could break at any minute without notice.
Im looking to get more into programming, and I've decided to look into creating a browser extension. This is exactly the kind of project I've been looking for to get stuck into programming web stuff but I'm new to it so I don't know where to start.
Could anyone suggest the different things I should look into?
The only programming experience I have so far is in Matlab. I've looked into C on and off in the past I but I have no practical experience with it.
I've started to have a look at Twando, an open source program which schedules tweets on Twitter where I'm going through and understanding all the code for that program (mostly php).
Afterwards I'll look more carefully at how to write Chrome browser extensions and then probably look into how to make 3rd party programs work with Twitter, Pinterest etc.
Am I looking along the right lines? Any constructive criticism will be appreciated.
I think you could do this using Javascript (and maybe JQuery, which is a library for Javascript that makes it easier/adds alot of easy to use functions).
For the basics:
http://developer.chrome.com/extensions/getstarted
This is great for learing to work with JSON and chrome extensions:
http://lifehacker.com/5857721/how-to-build-a-chrome-extension
What you could also do is download a simple extension from the "store" and open it to check what's inside. This helped me the most with learning Javascript and JQuery.
My freind and I want to setup a collaborative project where we both work on a HTML file (and do PHP) at the same time (bit like Google Docs share feature). I want to be able to work with him to teach him certain things in PHP and HTML while I also code at the same time. Any suggestions? I have a VPS I thought we could use for it so nothings really going to get in our way. Maybe something like GIT or something?
Sounds like what you need is a real-time collaborative text editor. Here's an extensive list from wikipedia.
I use Google Docs personally but Microsoft has added this type of functionality into Office and there are a slew of desktop and online tools on that link. I had looked into Etherpad before but i don't remember enough to suggest one or the other. All of the links are on the wikipedia article so I won't repeat here.
I am trying to find out what the tech is like to create a Gmail plugin that accesses my attachments. Just to get started, what would be "Hello world" as a Gmail plugin? What would be the steps to create it?
Yes, you can creates plugin for Gmail, and two types:
Sidebar
Contextual
Look for Gadgets in gmail. After learning how to use these, you can add them to your gmail or anybody that wants to can do the same, to do so you can have Google host it.
It's easy if you know some HTML, JavaScript, and XML.
Good Luck
Take a look at these links:
https://developers.google.com/google-apps/gmail/contextual_gadgets
https://developers.google.com/gadgets/docs/basic
You cannot create Gmail plugins.
(Unless you work for Google)
Doing some quick research it looks like Google now supports a GMail api to build gadgets and/or plugins. I haven't done it myself, however it seems like they want it to work.
https://developers.google.com/google-apps/gmail/
I think you can do that. (You will find Hello World program too)
http://code.google.com/apis/gmail/gadgets/contextual/
Last year, Google released a GMail API and it allows you to perform the actions you want, but perhaps not with the UX you're looking for embedded directly inside of GMail. You can find it here:
https://developers.google.com/gmail/api/
Depending on exactly how you need it to work, you might be able to use either Contextual Gadgets (https://developers.google.com/gmail/contextual_gadgets) or a Google Chrome Extension to do what you need.
Google has recently introduced add-ons for Gmail (probably on Oct, 24 2017). It can be developed with Google Apps Script. Google's documentation says
What Gmail add-ons can do ?
Displaying additional information for the user in the Gmail UI.
Connecting to non-Google services, to retrieve information or take other actions.
Providing an interactive interface to allow the user to control the add-on or send information to another service.
I am not pretty sure (will go deep into it in coming days) whether you can deal with attachments. But I logically feel you can do that as well, because GAS supports handling attachments.
As of now, Google is not allowing to publish new add-ons however they will allow it in future.
While a few add-ons have been made available in the G Suite
Marketplace for users to install, it is not currently possible to
publish your own add-on to the Marketplace.
How can you publish your own add-on ?
As of now (26th Oct, 2017), they consider it on request basis. If you have a cool idea, fill this form to let them know about it. You will get notified once they accept your listing.
Here is how the add-on interface looks like inside Gmail
It is not possible to create plugins for Gmail. There is no developer API as such - only access to send/retrieve emails using standard SMTP/IMAP protocols.
See http://code.google.com/apis/gmail/oauth/