Pages

Showing posts with label build. Show all posts
Showing posts with label build. Show all posts

Wednesday, March 11, 2015

Using Google Document List APIs to build Memeo Connect for Google Docs


Building Memeo Connect for Google Docs

Editors Note: This post was written by our partner Memeo, a digital media management company. Memeo Connect™ for Google Docs enhances Google Docs capabilities. We invited Memeo to share their experiences building an application on top of Google Apps utilizing some of our APIs. Other partners will share their experiences in future posts. 

Hi Im Matthew Tonkin, Mac Applications Architect at Memeo.  Google has been a great partner in helping us bring Memeo Connect to market.  Were excited about the new additions to the Google Documents List APIs and the products weve been working on for them.

Google Apps  is a great way for businesses to share and collaborate on documents, but more importantly, it has allowed businesses to move much of their office and IT infrastructure online for dramatic operating cost reductions.  Until recently, Google Docs users had no way of uploading, storing, syncing and sharing files of any type.  The big news is that Google Docs now supports all file types and there are Documents List APIs to prove it.  January saw the release of the updated Documents List API with this new arbitrary file support, but no desktop client software to manage file syncing between the desktop and the cloud.  Memeo Connect for Google Apps is that missing link.  Memeo set out to bridge Google Docs cloud storage with desktop software.  A simple goal that has big implications for where users store documents and how they are shared.  

The end result is a desktop application that is fully supported by Google Docs for online storage, synchronization, sharing and data management. With Memeo Connect, instant access to your important documents while online or offline is now very possible. Memeo Connect is available on both Windows and Mac platforms.







Our timeline for Memeo Connect was impossibly short due to Google’s aggressive timeline for launch. How did we do it?  Apart from the obvious late nights, junk food and beer, we received help from Google to take this product from concept to reality.  Some of it came in the form of new APIs, some directly from the Documents List API team, some from the client libraries and some from the discussion groups.



1. Keeping native file formats

Google Docs now supports keeping files in their native format.  Previously Microsoft Office files and images were converted to the online Google Document formats, removing much of the application specific formatting options used in the Office file formats.  However, its now possible to upload Microsoft Office files and images without conversion, meaning users can keep all of their custom file formatting.

You can get all of this with a simple parameter in the post URL when uploading the new document.

Google Documents List API

https://docs.google.com/feeds/default/private/full?convert=false










If like us, you use the client libraries, then its just as easy.

Google Data Objective-C client library**

NSURL *uploadURL = [[mDocListFeed postLink] URL];
GDataQueryDocs *uploadQuery = [GDataQueryDocs queryWithFeedURL:uploadURL];
[uploadQuery setShouldConvertUpload:NO];


Google Data .NET client library

string uploadURL = DocumentsListQuery.documentsBaseUri + "?convert=false";
docService.StreamSend(new Uri(uploadURL), fileStreamHandle, GDataRequestType.Insert, contentType, docTitle); 


The new features dont just handle Microsoft Office files.  Any file type is supported with no additional parameters or changes to client code, however the support for these features is only available through the Google Documents List API for users that have a Premier account.



2. Bigger file size limits and resumable uploads

Google Docs now supports file uploads up to 1GB and is resumable, so failed or paused uploads can pick up where they left off.

Google Documents List API
http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#ResumableUpload


Resumable post link:

resumable-create-media" type="application/atom+xml"
    href="https://docs.google.com/feeds/upload/create-session/default/private/full"/>


Request:

POST /feeds/upload/create-session/default/private/full HTTP/1.1
Host: docs.google.com
GData-Version: 3.0
Authorization:
Content-Length: 0
Content-Type: application/pdf
Slug: MyTitle
X-Upload-Content-Type: application/pdf
X-Upload-Content-Length: 1234567



Resuming:

POST HTTP/1.1
Host: docs.google.com
Content-Length: 100000
Content-Type: application/pdf
Content-Range: bytes 0-99999/1234567



Google Data Objective-C client library**

Resumable uploads are automatically enabled when switching to the uploadLink URL

NSURL *uploadURL = [[mDocListFeed uploadLink] URL];
GDataQueryDocs * uploadQuery = [GDataQueryDocs queryWithFeedURL:uploadURL];

Pausing and resuming uploads is also made easy.

[mUploadTicket pauseUpload];
[mUploadTicket resumeUpload];

Google Data .NET client library

ResumableUploader resumableUploader = new ResumableUploader();
if (newFile)
    resumableUploader.Insert(authentication, docEntry);
else if (partialFile)
    resumableUploader.Resume(authentication, resumeUri, httpMethod, fileStream, cotentType);
else if (updateExistingFile)
    resumableUploader.Update(authentication, docEntry);

** Objective-C code samples have been taken from the Docs Sample code



3. Client Libraries for Mac & Windows

The Google Documents List API provides all of the backend server functionality but isnt ideal for rapid client application development.  As client developers, we prefer the efficiencies provided by a wrapper in our native client languages.  This is where the client libraries for Objective-C and .NET allowed us to shorten our application development time significantly.  Without the client libraries, we simply would not have been able to achieve our goals for Memeo Connect in the time we had available.

Many of the Documents List API features we worked with in our early development were not available through the client libraries.  This was initially quite daunting because of the risk that we would have to drop down to raw server calls and miss out on the efficiencies we gained through using the client libraries.  However as we got to know the client libraries better, we found they were written flexibly enough that we never had to do that - there was always a way to bend them enough to get what we needed.  A sign of great design by their architects.

For example uploading without conversion was simple in the Objective-C client library even before it was officially updated to support it.

NSURL *uploadURL = [[mDocListFeed postLink] URL];
GDataQueryDocs *uploadQuery = [GDataQueryDocs queryWithFeedURL:uploadURL];
[uploadQuery addCustomParameterWithName:@"convert" value:@"false"];



4. Support from Google

The Documents List API team were of enormous help throughout the course of this project.  As with most of Googles public APIs, theres always an avenue to ask questions about how to best use the technology, pursue bugs or request new features.  The new Google Apps Discussion Groups are simply the best way to get an answer quickly and is invaluable in getting past whatever is blocking your progress. Google Developer Relations people monitor the discussion groups and frequently answer questions, link to other relevant resources, and provide code samples.


Whats next?

We had a sizable list of things we really wanted to do with Memeo Connect 1.0 and some of that had to wait for 1.x or 2.0.  Were looking forward to continuing to work with Google and file as many feature requests as we can to make some of these new features a reality.  Anyone can file a feature request for Google Apps APIs and I can assure you they all get considered.

In future releases well be adding more support for direct file system integration, better tools to manage sharing and were really excited about supporting new devices.  Get ready to see more Google Docs in more places.
Read more »

Sunday, March 8, 2015

Build add ons for Google Docs and Sheets

Weve just announced Google Docs and Sheets add-ons — new tools created by developers like you that give Google users even more features in their documents and spreadsheets. Joining the launch are more than 60 add-ons that partners have built using Apps Script. Now, were opening up the platform in a developer-preview phase. If you have a cool idea for Docs and Sheets users, wed love to publish your code in the add-on store and get it in front of millions of users.


To browse through add-ons for Docs and Sheets, select Get add-ons in the Add-ons menu of any document or spreadsheet. (Add-ons for spreadsheets are only available in the new Google Sheets).


Under the hood

Docs and Sheets add-ons are powered by Google Apps Script, a server-side JavaScript platform that requires zero setup. Even though add-ons are in developer preview right now, the tools and APIs are available to everyone. The only restriction is on final publication to the store.

Once you have a great working prototype in Docs or Sheets, please apply to publish. Scripts that are distributed as add-ons gain a host of benefits:

  • Better discovery: Apps Script has long been popular among programmers and other power users, but difficult for non-technical users to find and install. Add-ons let you distribute your code through a polished storefront—as well as direct links and even Google search results.
  • Sharing: When two people collaborate on a document and one of them uses an add-on, it appears in the Add-ons menu for both to see. Similarly, once you get an add-on from the store, it appears in the menu in every document you create or open, although your collaborators will only see it in documents where you use it. For more info on this sharing model, see the guide to the add-on authorization lifecycle.
  • Automatic updates: When you republish an add-on, the update pushes out automatically to all your users. Theres no more hounding people to switch to the latest version.
  • Share functionality without sharing code: Unlike regular Apps Script projects, add-ons dont expose your source code for all to see. Thats reassuring both to less-technical users and to the keepers of your codebases secrets.
  • Enterprise features: If your company has its own Google Apps domain, you can publish add-ons restricted just to your employees. This private distribution channel is a great way for organizations that run on Google Apps to solve their own unique problems.

Beautiful, professional appearance

Thanks to hard work from our developer partners, the add-ons in the store look and feel just like native features of Google Docs and Sheets. Were providing a couple of new resources to help all developers achieve the same visual quality: a CSS package that applies standard Google styling to typography, buttons, and other form elements, and a UI style guide that provides great guidance on designing a Googley user experience.


A replacement for the script gallery

Add-ons are available in the new version of Google Sheets as a replacement for the older versions script gallery. If you have a popular script in the old gallery, nows a great time to upgrade it to newer technology.

We cant wait to see the new uses youll dream up for add-ons, and were looking forward to your feedback on Google+ and questions on Stack Overflow. Better yet, if youre free at noon Eastern time this Friday, join us live on YouTube for a special add-on-centric episode of Apps Unscripted.


Dan Lazin   profile | twitter

Dan is a technical writer on the Developer Relations team for Google Apps Script. Before joining Google, he worked as video-game designer and newspaper reporter. He has bicycled through 17 countries.

Read more »

Wednesday, February 11, 2015

The 5 Best Ways to Build Quality Backlinks for Your Website or Blog

The 5 Best Ways to Build Quality Backlinks for Your Website or Blog

No one can deny the fact that backlinks are vital for the success of your online business – they will play a big role in determining your search engine rankings. However, the thing you need to understand is that after the latest Google updates, the quality of backlinks is more important than the quantity of those links. It means, not only do you need some diversity in your link pool, but you also need to ensure that those links come from high PR, authoritative websites.

Also Read: Tips on How to Have Better SEO Results with Link Building
Also Read: Best Way to Easily Find and Remove Broken Links from your Website or Blog

Many people often make a mistake when judging the quality of backlinks. Unfortunately, they are not like diamonds that you can rate considering clarity, cut, color, and other features. Backlinks are different, and they cannot be graded using any simple scale. Still, when you get a backlink from a website, the search engines will rate them as okay, good, mildly good, or excellent.

As it is not easy to have one single definition of quality backlinks, you have to find another way to make your link building campaign work effectively. A better idea would be to ensure that you dont go for bad backlinks. A backlink that is not bad will be considered good for your link building campaign, and here are a few ways to avoid bad links and fetch good links.


How to Build Quality Backlinks for Your Website or Blog

Take Full Advantage of Guest Posting

Writing guest posts on other blogs is a good way of getting quality links. You need to ensure that you pick a blog that is relevant to your theme. It is worth mentioning that the links from these blogs are considered good because you will have your post approved by a human webmaster, which is something that makes Google think that you know the topic well, and might have an informative site too.

Remember, your guest posts will work if they hold some value for the blog owner, and, at the same time, are relevant to your website/blog. Therefore, you should try to tailor the content of your post to fulfill this requirement, and its not that difficult too. For instance, if your blog is about leather care and maintenance, you can easily write and publish that post on a blog that sells leather jackets and shoes.

Also Read: How to Find the Websites or Blogs that are Copying your Content?


Use Credible Article Marketing Websites

Even though the value of article marketing is no longer the same as it was a few years ago – thanks to Google Panda and Penguin updates – you can still find a few legitimate sites to publish your articles. You can use these sites to post your article and have a link placed in the article that points back to your blog. Quite like guest posting, you can again write articles on topics that have some connection with your blog. Just make sure you pick a right category on these article-marketing sites to submit your article.

Using these sites is a lot easier than getting your article published on another blog, and thats one of the reasons why guest posting holds more value as compared to simple article marketing. Still, you can use these sites to diversify your link pool. You can find a category according to the theme of your blog and post as many articles as you can – though its a good idea to stick with one-article-a-week policy.


Add Your Links to Comments Sections

For this, you can pick blogs, article sites, and websites where they have a comment section. You simply need to make a productive comment and embed your link to your key phrase. This works quite well, but the only consideration is that youre going to get the link juice only if you opt for a comment section that comes with "do-follow" tag.  It may take some time to find it, but you will accomplish the task after conducting some research.

Also Read: The Top 10 Websites to create free Logo for your Blog


Get Links from Directories

This is still a good way of getting backlink, but the catch is to find a legitimate and well-followed directory – this could well be a paid directory. Although you can try some free directories like Google locations, you will be better off making use of paid directories like Yelp.


Make Use of Forum Postings

Making posts in forums, with your link attached to your keyword, is still effective. However, you dont always need to make posts; you can simply convince the forum administrator to place a link to your blog – it is difficult, but not impossible.


About Author:
Kate Funk is a writer and tutor at tutorleader.com. She loves covering writing tips and strategies for blogging.


Image source: http://www.psdgraphics.com/file/seamless-chrome-chain.jpg
Read more »