Can developers control their private keys? - coinbase-api

I need to create a mobile wallet app in which private keys are only stored on the user's device.
Can I do this with the Coinbase Wallet API? i.e. does the Coinbase Wallet API store/manage the private keys on a server?
Thanks,
~Johnny

Hey Jhonny You can not create a Wallet using Coinbase Api.
Instead You can use their services into your own Application.
Actually I am looking for the same thing and have research for few days and concluded to use it.

Related

What is a good way to deploy/reference Alexa Skills on my website

I have built a Alexa Skill, but for now it only works for Alexa Device.
I wonder if that is possible I can deploy/reference the Alexa Skill in my website (only text or voice part)?
One use case:
User can say "i am born in xx/xx/xxxx", and Alexa can capture the intent "CaptureBirthdayIntent", so that my website code (Python) can address the intent.
I found many CMS (e.g. Wordpress, Drupal) can do this: https://medium.com/#OPTASY.com/how-to-integrate-alexa-with-your-drupal-8-website-a-step-by-step-guide-5a76c1d74a88. But I am not using those CMS.
It also seems like Alexa Voice Service can do this.
Can anyone give me some reference?
In most cases, you'll need to use Account Linking, which is an API where the customer links their account at your website and their account with Alexa, and then you'll have a unique ID for the customer that is the same in both your skill and your external app (and is unique to that link between them), so you can sync data between them using a database.
https://developer.amazon.com/en-US/docs/alexa/account-linking/understand-account-linking.html
You can create your own unique OAuth 2 provider at your web app or use Login with Amazon, Login with Google, Facebook, AWS Cognito... Having your own OAuth provider can make it way easier to get a customer linked and not have them give up, because adding in third parties (LwA, Google, FB, AWS) adds extra logins/authorizations to complete the process.
You can use Dialogflow to do this. Make a chatbot with similar intents and map the endpoint to Alexa endpoints and should work. I am sure you can easily work it out if you have made an Alexa skill.

How do I authenticate users of a web-app to access GCP data relevant only to them?

I have spent 3 days researching this problem and cannot find a solution or similar use case that shows how to solve the problem, so any pointers would be greatly appreciated.
I am creating a web-app that uses Google Cloud Storage and Bigquery. A user registers on the web app and then can upload data to Cloud Storage and Big Query. Two users could be from the same company and therefore should be able to view the same data - i.e. Jack and Jill work for company A and if Jack uploads a massive dataset via this app, Jill should also be able to view it later.
Another scenario will be I have two completely separate clients with users using this web-app. If users from Company A upload data, users from Company B should not be able to view Company A's data, and vice versa. But users from the same company should be able to view the data within their company.
Currently, I have an app that works for a single company. This has a React front-end that uses Firebase for authentication. Once the user is logged in, they can use the app which sends off API calls to a Flask back-end that does some error checking and authentication checking and then fires off an API call to GCP. This uses a service account and the key is loaded as an environment variable in the environment in which the Flask app is running.
However, if Company B want to use the app now, both Company A and Company B will be able to see each other's data and visualize it through the app. In addition, they will be sharing a project (I would like to change this to allocate billing more easily to have each client have their own project).
I ultimately want to get this app onto Kubernetes and ensure that each company is independent of each other, however, do not want to have to have separate URL's for every company using the app. Also, I want to abstract GCP away from the client. I would prefer to authenticate a user based on their login credentials and then they will be given access to their GCP project (via my front-end) accordingly.
I thought about perhaps having separate service keys for each client and then storing the service key info in Firebase, while using the respective keys for API calls but not sure this is best practice. It is however the only strategy I can think of.
If anyone could provide some help or guidance it would be very much appreciated. This is my first GCP project and have not been able to find any answers on GCP, SO, Google Groups, Slack or Medium.
Thanks,
TJ
First if all, welcome on GCP! It's an awesome platform, very powerful and flexible. But not magic.
Indeed, the use case that you describe is specific to your business logic. GCP provides told for securing access for user and VM(through service account) but not for customer. Here you have to implement your own custom and authorisation logic, with a database (I don't recommend bigquery for website, the latency is too high) to list three users, the companies where they work, the blobs of each company...
Nothing is magic and your use case specific.
If you want to discuss more about which component to use and to start, no problem. Let a comment.

Angular site with Web API and SharePoint Online

We are thinking of creating a site in Angular that would get the information from SharePoint Online site using a Web API. The site and the Web API will be on Azure. The problem that I have is weather or not it is feaseable to query SharePoint Online using on single generic user that would authenticate for each request, or maybe using some sort of additional unique identifier for identifiyng each request, but same user overall. Do you believe it is possible? I have little experience on Azure and SharePoint Online, so any suggestion is welcomed. Thank you in advance.
BR,
Anisia
Yes, it is possible. At Web API level you can call sharepoint (use client-side object model (CSOM) for this) using single user for authentication.

Call Google Glass Mirror API using service account

I need to create a (demo) application for Google Glass with a simple user interaction: insert a card on Glass and get a response back to the application.
I think this can be done by using the Mirror API.
This application is not a web application so I think I need to use a service account.
I have created an API project on the Google APIs console https://code.google.com/apis/console/ and enabled the Google Mirror API.
After that I created a new client ID with application type "service account" (calls Google APIs on behalf of your application instead of an end-user; more info at https://developers.google.com/accounts/docs/OAuth2#serviceaccount).
The result is a client id, email address and public key fingerprint and a P12 key with password.
The problem is that I cannot find an example how to do the service account authentication and for example a card insert.
Any ideas? The used programming language is less important...
See also Can I use OAUTH2 Service Accounts with Glass Mirror API? but unfortunately without an answer.
Edit:
From the answer below I understand I cannot use the service account for this.
Is it then correct that I always need a web application where Google Glass has a callback url so data can be send from Glass to the application?
We develop a Warehouse Management System where the operator in the warehouse uses a voice client (like http://www.epf-gmbh.de/bilderorg/talkman_joe.jpg) that communicates with the server. The server sends commands to the client and the operator can send voice commands back to the server.
For demo purposes I would like to replace the voice client with Google Glass.
Edit 2:
Something like this: http://youtu.be/kbcskj4yAvo
You cannot do timeline operations with a service account. Most Mirror API operations (on the Timeline, Contacts, and Subscriptions) require a user's account since these operations must be done on behalf of the user in order to correctly identify which Glass will be used.
Update:
Your followup questions don't exactly relate to the authentication question, and they may be better asked in a new question, but two quick points:
Yes, when working with the Mirror API if you want to get information from Glass into your server you'll need a webapp which can take callbacks. You'll be registering this as part of a Subscription.
The example you pointed at uses the GDK, not the Mirror API.

How to obtain a private key for a legacy Google App Engine project?

I have a Google App Engine app which was created in early January 2013. I now want to use the Google Calendar API to post calendar entries from my GAE app and - after reading about the various options - I decided that Service Accounts with OAuth 2.0 authentication would be the best option. This approach requires the use of a private key to sign a JSON data structure with various credentials.
Now the Google documentation states:
During the creation of a service account, you will be prompted
to download a private key.
I checked my GAE dashboard and can see that there's a service account associated with it but I cannot remember ever being prompted to download a private key. I checked the Google Cloud Dashboard but could not find any links to obtaining such a key either.
Is it possible to obtain the required key at this moment and if so, how?
I have accepted Zig's answer and although it is slightly brief it helped me find a solution for this. For people who run into the same issue, here's some more detailed information
I initially could not find anything in the Cloud Console but then - after another hour of wading through Google's documentation and Cloud Console - found the relevant pages in the Api Console which is a different beast.
In the API Console click API access from the side bar. Then click the "Create another Client ID..." button and choose "Service Account". This will popup a window which allows you to download the private key.
Create a new service account in the console.

Resources