Facebook Graph API “/userid/feed” returning Blank

2020-07-17 16:27发布

问题:

I'm using Facebook C# SDK and I can't seem to get feed data back using Graph API.

I've obtained the following extended permissions from the user:

scope=offline_access,publish_stream,publish_checkins,create_event,read_stream,user_about_me,user_events,user_hometown,user_location,user_photos,read_friendlists,read_requests,user_checkins,user_relationships,user_online_presence,user_notes,user_likes,user_work_history

I have an access token for offline access.

I'm able to retrieve userid/friends information without a hitch, but can't seem to get feed data.

I get the following returned:

{
   "data": [

   ]
}

I obtained the token with type="client_cred" if that makes a difference. The process runs with user offline, so I'm not using the "me" alias.

Can someone give some direction on what I'm doing wrong?

回答1:

A token obtained with type=client_cred means "the application on behalf of itself", rather than "the application on behalf of a specific user". This means that it can only see stuff that's visible to all users. If you want to grab information on behalf of a particular user, you need to use that user's access token that you acquired. Since you asked for offline_access, when you acquire an access token for a user, that token won't expire quickly, and you can keep it around in a database.



回答2:

FB.init({ appId : 'YOUR APP ID', status : true, // check login status cookie : true, // enable cookies to allow the server to access the session xfbml : true // parse XFBML });

Once you add this code. Facebook sets a cookie on you domain. The name of the cookie would be fbs_YourAppId .

You can read the cookie and get the access_token.

Alternately you can use a method provided by the Facebook Api Connect.js file to get the feed if the user is logged in.

FB.Api(). Please refer to http://developers.facebook.com/docs/reference/javascript/fb.api/ to know more about the method.

Happy coding :)