Provide google docs functionality in web app with service account - google-docs

Is it possible to use complete (edit, comment etc.) google docs UI in my web app but use a google service account. Here are the requirements:
when user click on a button in my web app, it creates a google doc using google API and my web app google service account.
web app then opens the created google doc embedded [google doc UI] in my web app. The doc should be editable.
I'm hoping by using service account, the end user does not have to have a google account.
I would also like to show a custom user name in embedded google doc UI so that other users can see who is editing/viewing the document.
Any pointers ?
Thanks.

Related

How to have google docs api (nodejs) create an empty doc in a particular google account

I have an express.js application where clients authenticate using a local strategy (passport.js). After that I want them to be able to create empty documents with titles of their wish (I create a new mongoose 'Task' document and set its doclink (Task.doclink) to be the newly created document's public link (https://docs.google.com/document/d/...document_id.../edit)).
I want this new document to be created in a particular google account that I have access to (the clients don't have direct access to it but they can create documents inside it and write to it)
Any suggestions of how I should go about authorization of google API? As per my current research, this seems impossible.
What I would recommend you to use is a service account as the docs say:
A service account is an identity that an instance or an application
can use to run API requests on your behalf.
What it means is that you will be able to have a "bot user" in your express app, which could be the interface between your users and your document.
Docs
You can check more about it in these links:
Creating and managing service accounts.
Authenticating users with Node.js.

Proof Azure Website Ownership to Google Play

My problem is similar to this one. But I need to make one step further.
I whant to publish my website webview on google play. Google Play have rejected my submission but after I send them a email they respond and said that they will allow app publication if I send them pdf with distribution agreement, authorization contract, website domain information or something like that prooving my website ownership. My website hosted on azure. I have domain name like xxxxx.azurewebsites.net. Please help me to understand how can I make pdf document that prooves my website owership.
Will be very greatfull for help!
First, about how to verify your Azure Website ownership, you can refer to these Google documents as below.
Handling Android App Links
Secure and specific: Android App Links use HTTP URLs that link to a website domain you own, so no other app can use your links. One of the requirements for Android App Links is that you verify ownership of your domain through one of our website association methods.
and
Add verification for your deep links: Configure your app to request verification of app links. Then, publish a Digital Asset Links JSON file on your websites to verify ownership through Google Search Console. Learn more in Verify App Links.
Verify Android App Links
To verify ownership of both your app and your website, the following steps are required:
Request automatic app link verification in your manifest. This signals to the Android system that it should verify your app belongs to the URL domain used in your intent filters.
Declare the relationship between your website and your intent filters by hosting a Digital Asset Links JSON file at the following location:
https://domain.name/.well-known/assetlinks.json
The section Verify your website of App Indexing on Google Search in Play Console Help introduces the steps
Sign in to your Play Console.
Click All Applications All applications.
Select the application you'd like to verify.
On the left menu, click Development tools > Services & APIs.
Under "App Indexing from Google Search," click Verify website.
Type your website address.
Click Verify.
Go to Google Search Console.
On the left menu, click All Messages.
Open the verification request message (example: "Google Play: Link http://www.yourwebsite.com to android-app://example.com.yourpackage.name").
Click Approve the request.
Review the information and click Approve. Once approved, your app will appear on the
Search Console Home Page for your account. Be sure that your app enables deep links.
If you have a Google Search Console account or not, here is two links of Verify your site ownership of Search Console Help for old and new Search Console will be helpful.
Tip: Only Google Search Console users with "Owner" permissions can view and approve site verification requests. If you don't see your site verification request, make sure you're signed in using an account with "Owner" permissions.
Second, the xxxx.azurewebsits.net is just a subdomain of azurewebsites.net which be registed by Azure and you can lookup the related info via https://www.whois.net/ as the figure below, so it's not belong to you.
Therefore, you need to register a domain name like abc.com in the Domain Name Registrar like GoDaddy or others, and add a CNAME record with it into DNS server like Azure DNS, then to follow the above steps required by Google to verify your website ownership and collect the necessary information to make a PDF document to send to Google.

Microsoft Teams custom website tab retrieve information about the Team and corresponding SharePoint site

I'm looking for a way to access the corresponding Microsoft Team and SharePoint site that is created from a custom website tab. So what I have is a custom website tab added to a Microsoft Teams site. This tab is a website tab and is pointing to the custom website app that I'm building.
What I want to do is from within the custom website I want to be able to access the corresponding SharePoint site that was created from the Microsoft Team and then I want to be able to use the SharePoint client object model to interact with the document library.
You'd have to have your tab / web app provide an auth flow, and ask your user to grant access to the Graph APIs, which can be used to access that content.

Target google calendar when using jwt access

I use google-api-nodejs-client to access my calendar on server side application. My app's user is only for me, so I use jwt access via service account.
After setting up a service account on Google Developers Console, I could get/insert events to calendar via google api library. But I couldn't find any events in Google calendar on web browser. Of course I use a same google account for setting service account on developers console and checking google calendar web app.
Perhaps if I use a service account, is a special calendar created? Is it possible to get/insert events from/into my existing calendar via calendar id? I got an error when I set existing calendar id to get events, 'Not found'. I could only set 'primary' as a calendar_id.
I got an answer by myself. If I use existing calendars, I have to set 'sharing settings' to each calendar in google calendar.
Open google calendar
Go to calendar setting page
Open 'share setting' that calendar you want to use
add your service account email (xxx#developer.gserviceaccount.com) and set authorization level.
Then, I could access existing calendars!

Implementing Azure Mobile Services with OAuth and Not

I'm trying to create a Azure Mobile Services Backend (JS) for an Android App and Website, with Windows and iOS versions down the road.
I see that you can add API keys to Facebook, Twitter, Microsoft and Google for users to authenticate via social accounts. I want my app to enable registration and login from these social accounts as well as have a standalone sign up form should they opt not to.
All data should be stored in a user table and I want to be able to store columns like phone number, and have users login and manipulate data specific to their account via Mobile Services APIs.
Could a knight or dame in shining armor point me to the right direction on how I can implement this? I haven't been able to find any articles that can help me create such a system.
I'd start with this post by Chris Risner:
http://chrisrisner.com/Custom-Authentication-with-Azure-Mobile-Services-and-LensRocket
He links back to several earlier posts that should provide the background you need and also has some updates at the top to point you to changes since that post.
For profile information from the social providers I'd use these examples (and the associated links) from Carlos Figueira on how you can access more profile information from MS, Google, and Facebook.
http://blogs.msdn.com/b/carlosfigueira/archive/2013/12/12/expanded-login-scopes-in-azure-mobile-services.aspx

Resources