A few days ago I was asked if it's possible to show the posts of a specific google+ site on a website. I try to explain it more detail:
A concern has google+ account.
The same concern has also a website.
Now "Cool Concern" want to show all posts from google+ on the newssite of it's website.
I read the Google+ Web API and HTTP API, but nothing seems to satisfy my request.
I know this is an absolute newbie question.
But I appreciate any hint:
is it in general possible?
which API I have to use?
Thanks a lot!
For users and Google+ Pages, you can retrieve all of the public posts that account has made via the activities.list API call. From this, you can surface the content on your own site.
To make the activities.list API call, you need only the Google+ ID of the user or Google+ Page that you are interested in. If your users are logging in to your site, you can use the special keyword 'me' to refer to the current authenticated user. In Python, this looks like:
activities_resource = service.activities()
request = activities_resource.list(
userId='me',
collection='public',
maxResults='2')
while request != None:
activities_document = request.execute()
if 'items' in activities_document:
print 'got page with %d' % len( activities_document['items'] )
for activity in activities_document['items']:
print activity['id'], activity['object']['content']
request = service.activities().list_next(request, activities_document)
You can see examples in additional languages, and learn more, at https://developers.google.com/+/api/latest/activities/list.
However, you will need to cache the data and refresh it regularly to ensure that there is no stale data, and that posts deleted from Google+ do not persist in your app. You can see the full developer policies at https://developers.google.com/+/policies.
Related
I want to use Instagram's Graph API on my backend server to retrieve data about an Instagram post. On my frontend, users will submit a post URL (like https://www.instagram.com/p/CAvPIm2lszQ/). Then on my backend, I want to take the ID of the post from that URL (so in this case CAvPIm2lszQ) and then I'm hoping that I can pass that ID thru the Instagram Graph API and then retrieve the data that I need (media URL, caption, poster username, etc.).
So would that be possible? I did find documentation on "IG Media" for the Graph API, but under permissions, it says, "A Facebook User access token from a User who created the IG Media object, with the following permissions.."
Unless I'm misunderstanding it, I'm not sure if I'll be able to access posts from various public accounts. I think it's also worth mentioning that my users are not logging into their Instagram accounts to use my service so the only possible "User access token" would be my own.
Any ideas on how I can go about this? I was using the instagram.com/p/{post_id}/?__a=1 endpoint to meet my needs before but it doesn't work on my production server for some reason. So I'm kinda stuck.
Most probably you will not be able to achieve that using Instagram API. First of all the ID you are referring to CAvPIm2lszQ is not the ID that you will use for getting IG Media. The ID is different (it's numeric value like in the sample request from the page you've linked). The full URL that includes CAvPIm2lszQ is in the shortcode field.
At the moment it is not possible to look for the post detail using shortcode. If you want to use that endpoint you need to get the real post ID first, for instance by listing list of posts from given user.
But in order to do so - you need to use Facebook login authorization window to get token from given user. Alternatively you can try to request https://developers.facebook.com/docs/instagram-api/guides/business-discovery but it requires going through App review and having your own company to pass the Business Verification. Keep in mind that this endpoint returns information only about Instagram Professional accounts (Business/Creator account). You will not be able to get information about regular accounts.
And the last thing about ?__a=1 endpoint. This is not the official Instagram API. They use it only for their own purposes. Most probably your server IP address has been blocked due to sending too many requests.
I am new to this Instagram API, and I read their doc about endpoints, this is the endpoint that I am using:
/v1/tags/{tag-name}/media/recent?access_token=ACCESS-TOKEN
It is fetching the images, but, only on my accounts photos. I want is, I will give an tag-name, and it wll display all, not just the photos on my account, but all the photos in Instagram too.
I know has been a long time, but just for the record.
Since you need the public_scope permission for this (the permission that gives you access to all public data on instagram, and not only your account) you need your app to be reviewed and approved by Instagram. However, if you're using the API for a one-site personal project, Instagram will not approve it.
Here's from Instagram's docs:
1: Which use case best describes your Instagram integration?
R: I want to display hashtag content and public content on my website.
A: This use case is not supported. We do not approve the
public_content permission for one-off projects such as displaying
hashtag based content on your website. As alternative solution, you
can show your own Instagram content, or find a company that offers
this type of service (content discover, moderation, and display).
You can find more information in the Permission Review documentation.
Your client is in Sandbox Mode and can only search for tags of photos posted by invited users. You have to login into https://www.instagram.com/developer, edit your client and click on the "GO LIVE" button.
If the "GO LIVE" button is disabled, you have get your app reviewed by Instagram first: Click on the Permissions tab and submit for review. (Company Name, Contact Email and Privacy Policy URL are required to start a submission.) Once approved, u will be able to click Go Live.
By hashtag you mean tags.
It works for me. Despite I'm using python client, it should work well when you're developing your own client. Look:
from instagram.client import InstagramAPI
api =InstagramAPI(client_secret=settings.CLIENT_SECRET,
access_token=settings.ACCESS_TOKEN)
result = api.tag_recent_media(tag_name='castle')
media = result[0]
for m in media:
print (m.images)
print (m.user)
print (m.tags)
You can try it and it is working for me.
/v1/tags/{tag-name}/media/recent?client_id={YOUR_CLIENT_ID}
My client id is created before "permission review", it is working now and I am trying to submit permission review to Instagram now, hope it will pass.
Is it possible to use Google+ login page to allow users to login as pages to the site?
Otherwise, is there an API to get information about a logged in user pages? Or do I need to request access to Pages API?
In some cases, this is possible. However, the user would need to register a password on their page, which, according to the help topic, "is currently not available to pages owned by Google Apps accounts or users under the age of 18". I don't believe most people have this set up. You could request having such people set this up, but if they fall under that group they would be out of luck.
As such, I would recommend that you look for another way of doing this.
I am trying to create a site where you can login with Google+, but I am having some problems understanding the Google+ API.
Can anyone explain to me how to fetch information, such as e-mail, name, id, etc. or give me a good link for a site where I can find some documentation about this.
Before you suggest me to this site I have already read it but not finding out how to fetch info.
Google+ Sign-In provides users the ability to authorize your application to retrieve data from the Google APIs based on the scopes that you set for your button. When a user authorizes your app, the sign-in callback returns you an OAuth 2.0 access token. This token gives you the ability to queries any of the APIs that your scope granted access to, this is not limited to Google+ APIs. You pass your access tokens to the API when you make requests.
Basically, you read the prereqs and didn't continue reading the API docs for the lower level details specific to the API that you are interested in. In this case, it sounds like you want to retrieve a person's profile (A "Person resource") by using the people.get method. At the bottom of that page are code examples for a variety of languages.
I want to achieve the same as Hootsuite, publish a post in a PAGE STREAM. But I don't know even where to look for it. It looks like Hootsuite is using the API, because they prompt an open Auth authentication where the user selects and authorize what this APP can do with his data.
With the PHP client I've been able of posting in the user APP stream (different from the user main stream) using moments class, and get data from the user using plus class client, both from the PHP library available here: https://code.google.com/p/google-api-php-client/source/checkout
But I don't know how to write in a user's page. Does anyone knows or can point me where to go to, at least, publish on main Google+ page stream as Hootsuite? Thanks.
The Google+ Pages API is currently available to a limited number of parters only, including HootSuite. You can request access to the API at https://developers.google.com/+/api/pages-signup but there is no guarantee when, or even if, Google will approve your access.
Although you can use the HootSuite console to post messages to Google+ pages (see http://hootsuite.com/google+), it isn't clear if you can use the HootSuite API to do so.