Google Calendar API integration - google-calendar-api

My scenario is the following: We currently own an online rental marketplace that uses peer to peer bookings just like Airbnb. This means each user has a calendar for their property.We have a Vaway calendar for the bookings on our site however are wanting to integrate google calendar so we can be able to 2 way sync/asynchronous all the Ical calendars to each other from our partner sites who support it.
After much research I have tested my personal google calendar to see how the iCal works and it seems to work perfectly so we decided this architecture would need to be implemented on a much larger scale. This would be used in all new users signups to give our users an all in one calendar that syncs all our Partner sites into one completely synced google calendar for their listing. This basically allows a user who has their listing on 7 different platforms to sync to one calendar showing availability for them to keep track of inside Vaway account.
The google calendar would be completely separate from our Vaway calendar specifically to allow our users to sync all their property bookings from other sites into one integrated calendar.. The problem when reading about google calendar API is it requires OAuth 2.0 which is required user sign in from their existing google account (Calendar, Gmail...etc). Many of our users and new signups will not have google accounts and we do not want them to have to go through a google signup process to log into their calendar. Is there any way around OAuth 2.0? We really just need the functionality of the google calendar and its syncing capabilities inside our dashboard to give read write permission and sync back and forth 2 way with other calendars on other platforms.
With all of the features the google calendar has it seems to be perfect for what we are doing when testing. Each user that signs up with us will have google calendar in their Vaway dashboard provided by vaway however they will manage their own google calendar inside the Vaway platform for their property bookings. All calendars events/bookings would be public to allow the Ical syncing option to push through.
We do not want the users accessing this calendar outside of the platform because the pulls them away from the site. I'm not sure what solution would best suit this business model and am totally at my wits end here after researching. We are trying to keep our overhead low so google apps marketplace is not an option.

You really should reformulate your question, because it's really hard to read and understand right now.
But if I really get your question, you want to enable managing google calendar from a personal application without the end user having to log to any google personal account.
If this is clearly what you want to do, I suggest you to have a look to Service Account with OAuth2.0.
(See here : https://developers.google.com/accounts/docs/OAuth2#serviceaccount)
It will provide a service account for your application, from which you will be able to handle calendars for your app.
And here you will find a sample showing how to do it with Java. (https://code.google.com/p/google-api-java-client/wiki/OAuth2#Service_Accounts)

Related

BuildFire: Tracking Commerce and Conversion Analytics

I am attempting to track certain events in Buildfire's platform and have a few questions. I've integrated Firebase into a plugin not using the Buildfire API but by following Firebase's steps to integrating with a web app.
I'd like to be able to register the following events but don't see them mentioned in the Buildfire Wiki:
When a user signs up (creates an account) on an app - I believe Firebase registers users anonymously the first time they use an app since Firebase has been integrated but was wondering if there was a signup event when a user actually creates an account to distinguish between people who view the app and those who create an account
Paywall view (when a user tries to see premium content and is directed to the paywall).
When a user subscribes to a paid plan - additionally, I'd like to access the subscription information such as the price of the subscription.
These events would help drive funnels and deliver better conversion rate statistics. I've looked but just haven't found the documentation related to tracking these events within Buildfire. I've looked at the getUser methods under Authentication in Buildfire's API but don't see any user information returned regarding subscriptions.
Any information would be appreciated!
There are many ways to accomplish what you are looking for. I'll try to describe several so you can pick the method that best suits you.
Use the BuildFire integration with Firebase. This doesn't really change much on your implementation. However, you now will have the BuildFire Auth Servers sending your Firebase server, secure user information along with User Tags. If you have the user tagged when they view premium content, then you can run queries on this directly in firebase.
https://github.com/BuildFire/sdk/wiki/Buildfire-Firebase-Integration
Send your Analytics to BuildFire. This way you have one spot to view the users' journey
https://github.com/BuildFire/sdk/wiki/How-to-capture-Analytics-for-your-plugin
For more advanced analytics and funnel creation you can send your analytics to BuildFire and use BuildFire's integration with Segment.io which will allow you to pipe the data into your database, google analytics, mixpanel, or anyone of the hundreds of integrations they have.
https://learn.buildfire.com/en/articles/3225298-how-to-integrate-segment-with-your-app-for-additional-analytics

Google analytics API - how to create new account

Okay, some heads-ups as I feel I'm an idiot and missing some simple stuff. As far as I understand Google Analytics works with a 3 tiers system: account -> property -> view. and I should be able to manage these 3 levels via the google analytics management api.
For some context as to why I encounter this issue. I am making a CMS in which I want to register a new google analytics account per user, and a property per website this user has. (implementation and usage of views out of scope for now, I will implement those on a later date). To achieve all of this I started following Google's documentation on the Google Analytics Management API (according to Google this is what manages accounts, properties and views). Therefor I have made a service-user-account which should have enough permissions to manage GA-accounts.
However I can't seem to be able to create a new account via the API. Am I missing something obvious? Is it not possible at all this way? If so, how then? Because my goal is to have GA on every website, without the user having to config anything.
You can't do it. The management API only allows for the list operation on accounts: https://developers.google.com/analytics/devguides/config/mgmt/v3/account-management#account_summaries
The only solution would be to use the Provisioning API. It can be used to create new Google Analytics accounts and enable Google Analytics for your customers at scale: https://developers.google.com/analytics/devguides/config/provisioning/v3/
Anyway, the Provisioning API is currently available by invitation only.

Firebase Calendars

I have been searching all over for this, and I just haven't been able to find a clear answer to my questions.
I'm developing an app for a client and using Firebase as my backend (it's my first time). I need each user account to have it's own calendar.
I will be using the Firebase O-Auth but I don't want my app to see or edit a users auth account calendar (ie: if a google user logs in I don't want to edit their google calendar). I want our database to store a unique calendar for each unique user.
Will the calendar API allow me to do this? The app could potentially have thousands of calendars. I've seen some docs about limits, but it seems like limits on api calls, which I don't have any estimates for at this time.
Would a service account be appropriate for this application?
I've checked these other posts, but they don't quite answer my questions:
How to create a scalable calendar service backend for an Android app?
Google Calendar API - Designed for?
Any kind of insight would be much appreciated. Thanks!
Generally what we do in this case is create calendars using documents and collections within Firebase. Here is an example of a calendar app that uses Firebase to store its appointments. It is written in Flutter, but the backend design for Firebase should be easy to understand.
https://www.syncfusion.com/kb/12067/how-to-work-with-the-firebase-database-and-the-flutter-calendar-for-appointments

Is it possible to integrate google analytics dashboard to our own website?

I want to show google analytics dashboard to my users. It is not possible to give access of "google analytics dashboard" to all users. So I want to integrate it on my own website. Will it be possible to integrate google analytics dashboard on a particular website?
This question gets asked quite a bit. It is important to understand the security model for the API. All Google APIs use OAuth2.0 to authenticate the user. This is designed to make it easy to use the API to access the Users's data on behalf of the user. In contrast you will need to do work to show Your data to your users.
With that said, an example of what you are looking for is the Server side Auth example provided by the Analytics API team.
The simplest answer is to query the API on the server side, with a service account and serve that data as you serve any other data to your users. Read the scenarios in detail, and pick one that best suits your end goals. Understand how the API views the following entities.
A User uses an application.
A Developer develops Application.
An Application has a project id and its associated credentials.
A user authorizes an application to access their data via the API.
You are breaking this paradigm because you are the user and developer from the API's perspective. You want to share your data with people who are not authorized to view it, so you will need to use a service account to access that data and share it directly with your users.
Also remember to add the service account to Analytics View you wish it to access.
Check out EmbeddedAnalytics if you prefer not to get bogged down learning oAuth2, the CoreReporting API, and lastly a charting tool. We simplify the process. All you do is create your chart and embed a snippet of code in your site where you want the chart/dashboard to show.

Google analytics Embeded api with out Oauth authorize

How can i use gapi.analytics.auth.authorize without button..
I need it for customers, to track visits on their subdomain, and I have my analytics code on page, so they can't use button to authorize, need without it, automatically.
Any example?
Your question isn't very clear it is hard to understand what you mean by Button.
I think you mean that you would like to select data from YOUR Google Analytics account and display it on YOUR website.
To do this you will need to use a service account as apposed to Oauth2 (Oauth2 would popup with a new window requesting access). When you create the service account in the Google developer console take the service account email address. Give it access at the ACCOUNT level in the Google analytics admin section. It must be the account level this will then give the service account access to read your Google analytics data.
Quota: I am not sure what you are extending to do here but remember you can only make 10000 requests per day against your Google Analytics profile. After that you are cut off there is no way to extend this number. So I advice you to save the data in the database someplace you shouldn't request the same data more then once.
Example:
I suggest that you look for an example in what ever programing language you are intending to use. Again your question doesn't state anything about what language you will be using. Hello analytics API might be a good place to start but it depends upon the language the PHP one is way out of date I wouldn't bother with it. Also you cant use a service account with JavaScript so that one is out to.
Update figured out button
Embded api I think I have finally figured out what you mean by button. gapi.analytics.auth.authorize is used in the Google analytics embedded api. Which is JavaScript which it is not possible to use with a Service account. So the final answer to your question is
Answer: You cant remove the button from the Google Analytics Embded api the only way to login with JavaScript is to use Oauth2.
Advice: switch to PHP and use a service account to request data yourself. Or give each of your customers access to your Google analytics so they can login themselves.

Resources