Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Access "Public" Graph API resources from an app?

I am creating a web application that is trying to use "public" Facebook content.

It is not your traditional "Facebook Application" because I'm not actually signing up Facebook users to use it, but the users will be all server-side.

I've come to a point in which I am having to use an "access_token" for certain "public" pieces of content and I have been able to generate a app access_token but this does not work for the public data I'm interested in accessing.

access_token's created via

https://graph.facebook.com/oauth/access_token?client_id=APP_ID&client_secret=APP_SECRET&grant_type=client_credentials

do not work for

https://graph.facebook.com/chickfila/notes?access_token=CODE_FROM_ABOVE

which is publicly accessable w/o login here...

http://www.facebook.com/ChickfilA?sk=notes

Any way to give an app itself a user-level access_token?

like image 516
jondavidjohn Avatar asked Jul 06 '11 19:07

jondavidjohn


People also ask

What is the difference between delegated and application permissions?

Delegated and application permissionsSome delegated permissions can be consented by non-administrative users, but some higher-privileged permissions require administrator consent. Application permissions are used by apps that run without a signed-in user present.


3 Answers

I had a very similar problem with publicly available event data. What I had to do was to create an offline access token for the admin of the application.

So, log in with your admin and open the following URL (replace APP ID with your ID and eventually you need more permissions, but read_stream and offline_access should do the trick):

https://graph.facebook.com/oauth/authorize?client_id=APPID&scope=offline_access,read_stream&redirect_uri=http://www.facebook.com/connect/login_success.html

This will give you a code, that you will paste in the following URL (with your APP ID and SECRET):

https://graph.facebook.com/oauth/access_token?client_id=APPID&redirect_uri=http://www.facebook.com/connect/login_success.html&client_secret=SECRET&code=CODE

This will give you an access token that should work forever (or until you change your password).

like image 185
Sascha Galley Avatar answered Oct 21 '22 02:10

Sascha Galley


Recently I used the access token freely available from the Facebook Graph Explorer which will let you browse different graph resources and will let you specify what permissions you need. For this you can tell it you want offline_access and that token can be used to pull this information whenever it is needed without worrying about your token expiring.

like image 22
bkaid Avatar answered Oct 21 '22 01:10

bkaid


Create an user just for your app and let the user authorize your app and get the access token and use it for this kind of data fetching. Some manual work but as long as you have some user authorized access token you should be able get the public contents.

like image 20
Byambatsogt Avatar answered Oct 21 '22 01:10

Byambatsogt