Can I use GoogleApiClient to connect to my own GAE Endpoints API?
Perhaps by adding some kind of special scope?
I know it's probably impossible (after all, my own API isn't Google's) but I'd love to leverage the G+ log in functionality!
Thanks and sorry if this is a stupid question.
Not quite sure I understand the question yet. Your endpoints library can see if a user is logged in by looking at the User parameter. The example near the end of Lesson 2 of Udacity's course integrates with G+ log-in.
Related
Help please solve the following problem. I can not
sign in anonymously into the meeting using the Skype Web SDK.
On the following site it doesn't work: https://ucwa.skype.com/websdk
In the official example
everything works (signin, signout, chat, conference), except, of course, anonymous meeting.
I had a question: does this service at all, and if someone did it, answer, please.
No, you cannot pragmatically manipulate Skype without an authenticated user. Anonymous users may join your Skype meeting (if your configuration allows for it) but they do so using a publicly available Skype client (native or web).
First of all, the sample you are looking at is for Skype for Business Online. Its not meant to work with onprem. Its indeed not working anymore.
You can make use of this repo: https://github.com/OfficeDev/skype-docs/tree/master/Skype/Trusted-Application-API/samples/AnonMeetingJoinSamples and set up your own UCAP cloud application. Follow all the steps in the readMe and and on this page: https://msdn.microsoft.com/en-us/skype/trusted-application-api/docs/anonymousmeetingjoin
If you want further information for Skype for Business check out this: https://msdn.microsoft.com/en-us/skype/ucwa/ucwa2_0generalreference
If you have a specific question, feel free to ask
I'm intrigued by Amazon LEX for building a bot but at the same time love the ease of Firebase. Is there a similar product on Google? Maybe accessible via Google Cloud Function?
Google owns api.ai. That seems to provide the closest functionality to Lex. Hopefully that gives you something to look into.
Also, I haven't done this personally, but it seems like an article that might help you:
http://glaforge.appspot.com/article/a-tight-develop-test-loop-for-developing-bots-with-api-ai-the-google-cloud-function-emulator-node-js-and-ngrok
Api.ai supports context based conversations now, which reduces the overhead of handling user context in session parameters. On the other hand in Lex this has to be handled in session. Also, api.ai can be used for both voice and text based conversations (assistant actions can be easily created using api.ai). But Amazon Lex (text) and Alexa (amazon echo) are entirely different. Hopefully in near future both Lex and Alexa will be under one sdk.
Update
Amazon has launched its improved beta Alexa skill builder similar to api.ai
Background: This is my first standalone web development project, and my only experience in Meteor is building the Discover Meteor app over the last summer. I come from about a year of CS experience as a side interest in school, and I am most comfortable with C and C++. I have experience in python and java.
Project so far: I'm creating a calendar management system (for fun). Using accounts-google, I have created user accounts that are authenticated through google. I have requested the necessary permissions that I need for my app, including 'identity' and 'calendar read/write access'. I've spent the last week or so trying to get over this next hurdle, which is actually getting data from google.
Goal: I'd like to be able to make an API call to Calendar.list using a GET request. I've already called meteor add http to add the GET request functionality, my issue comes with the actual implementation.
Problem: I have registered my app on the developer console and set up Accounts using the client ID and secret, but I have not been able to find/generate my 'API key' for use in the request. Here is the google guide for creating the access token by using my (already) downloaded private key. I'm having a hard time wrapping my head around an implementation on the server side using JS because I don't have a lot of experience with what is mentioned in the HTTP/REST portion of the implementation examples. I would appreciate some help on how to implement a handshake and receive an access token for use in my app. If there is a call I can make or some package that will handle the token generation for me, that would be even better than implementation help. I believe an answer to this would also benefit this other question
The SO answer that I've been referring to so far: https://stackoverflow.com/a/14543159/4259653 Some of it is in spanish but it's pretty understandable code. He has an API key for his request, which I asked this question to help me with. The accounts-google documentation isn't really enough to explain this all to me.
Also an unrelated small question: What is the easiest way to deal with 'time' parameters in requests. I'm assuming JS has some sort of built-in functionality that I'm just not aware of yet.
Thanks for your research. I have also asked a very similar question, and right now I am looking into the package you recommend. I have considered this meteor-google-api package, but it looks abandoned.
Regarding your question about time manipulation, I recommend MomentJS. There are many packages out there; I am using meteor add mrt:moment
EDIT: MomentJS now has an official package for Meteor, so use meteor add momentjs:moment instead of the mrt command above
Below is a snippet of what moment can do. More documentation here.
var startTimeUTC = moment.utc(event.startTime, "YYYY-MM-DD HH:mm:ss").format();
//Changes above formatting to "2014-09-08T08:02:17-05:00" (ISO 8601)
//which is acceptable time format for Google API
So I started trying to implement all of this myself on the server side, but was wary of a lot of the hard-coding I was doing and assumptions I was making to fill gaps. My security prof. used to say "never implement encryption yourself", so I decided to take another gander for a helpful package. Revising search criteria to "JWT", I found jagi's meteor-google-oauth-jwt on Atmosphere. The readme is comprehensive and provides everything I need. Following the process used in The Google OAuth Guide, an authorization request can be made and a key generated for making an API call.
Link to Atmosphere: https://atmospherejs.com/jagi/google-oauth-jwt
Link to Repo: https://github.com/jagi/meteor-google-oauth-jwt/
I will update this answer with any additional roadblocks I hit in the Google API process and how I solved them:
Recently, I've been running into problems with the API request result. I get an empty calendarlist back from the API call. I suspect this is becuase I make an API call to my developer account rather than to the subject user. I will investigate the problem and either create a new question or update this solution with the fix I find.
Fix: Wasn't including the 'sub' qualifier to the JWT token. Fixed by modifying JWT package token generation code to include delegationEmail: user.services.google.email after scope. I don't know why he used such a long designation for the option instead of sub: as it is in the google API, but I appreciate his package nontheless.
I'm quickly becoming proficient in this, so if people have meteor-related google auth questions, let me know.
DO NOT USE SERVICE ACCOUNTS AS POSTED ABOVE!
The correct approach is to use standard web access + requesting offline access. The documentation on the api page specifically states this:
Typically, an application uses a service account when the application uses Google APIs to work with its own data rather than a user's data.
The only exception to this is when you are using google apps domain accounts and want to delegate access to your service account for the entire domain:
Authorizing a service account to access data on behalf of users in a domain is sometimes referred to as "delegating domain-wide authority"
This makes logical sense as a user must be allowed to "authorise" your application.
Back to the posters original question the flow is simple:
1) Meteor accounts google package already does most of the work for you to get tokens. You can include the scope for offline access required.
2) if you are building your own flow, you will go through the stock standard process and calls as explained on auth
This will require you to:
1) HTTP call to make the original request or you can piggyback off some of the internal meteor calls : Package.oauth.OAuth.showPopup() -- go look at the source there are more nifty functions around there.
2) Then you need to create an Iron router server side route to accept the oauth response which will contain a code parameter that you will use to exchange for tokens.
3) Next use this code to make a final call to exchange the "code" for the token + refresh_token
4) Store these where ever you want - my requirement was to store them not at the user level but multiple per user
5) Use a package like GoogleAPI this wraps up Google API calls and refreshes when required - it only works when tokens are stored in user accounts so you will need to rip it apart a bit if your tokens are stored somewhere else (like in my case)
I would like to extract data with google analytics api to tibco Business works. But i am not sure what the best pratice would be. First i thought about using java code for requests and responses. I have been looking at this tutorial.
https://developers.google.com/analytics/solutions/articles/hello-analytics-api
But now i am not sure if that is the best idea. Would it be better or even possible to do with Tibco:s http-palettes? Can i autenticate i user then? I would appreciate if someone could point me in the right direction.
Yes, you can use the BW HTTP Activities to integrate with the Google Analytics' RESTful API. However, to make things easier, you might want to consider using the BW Plugin for REST and JSON, which will take care of the JSON parsing and OAUTH implementation for you.
Otherwise, the easiest option is to just use the Google's Java Client Library and BW's Java Activities
I am making an application in which i have to make connnect to linkedin and after connecting i've to retrieve group discussion posts and all other information that i can retrieve related to group
I dont know where to start :(
I have APIkey and SecretKey
Can anyone provide the sample code
Regards
I dont know where to start
The documentation of the API you are trying to use is generally a good place to start.
Here's how I would proceed if I was at your place:
Head over to the documentation
Read it carefully
Start designing a POC (proof-of-concept). Could be a simple console application in which you attempt to consume the API.
Once you have a working POC integrate it into your actual application
If in between those steps you encounter some specific problems you shouldn't hesitate to show your progress here and ask some real question instead of give-me-the-code type of questions.