I would like to post to my own Facebook page's wall from my website using PHP.
I have the following:
- Facebook Application with AppID, AppSecret, ApiKey
- Facebook Page with PageID
- my own Facebook account - I'm the admin and the creator of the application and page mentioned above.
E.g. I write a blog post, and I'd like to get the name, the short description and a picture on my Facebook page's wall. Or I would like to publish some articles on the Facebook page every day automatically as a cron job.
Could you provide a step-by-step tutorial how to accomplish this?
I've read this article about Facebook Login:
https://developers.facebook.com/docs/facebook-login/
but I still don't know what to write in my code.
UPDATE 1
This is how I send a request for an App Access Token:
$url = 'https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id='
.Yii::app()->params['FacebookAppID']
.'&client_secret='
.Yii::app()->params['FacebookSecret'];
The response is similar to this (fake symbols):
access_token=326584076429|ax3-D39YbpDcR9rMRQn_fMvNu_s
What access_token
is it? Application Access Token? How to get a User Access Token?
I tried to use the access token from here:
https://developers.facebook.com/tools/explorer?method=GET&path=me%2Faccounts
but I got the following error message:
An active access token must be used to query information about the current user
So how should I obtain the right access token?
UPDATE 2:
How can I get the right Facebook tokens in my application without any client interaction?
I'm the admin and the creator of the Facebook Application and the Facebook Page.
Step by step
me/accounts
and search thru the resulting list to find the page you're interested inYou can experiment with the above at https://developers.facebook.com/tools/explorer
Happy Coding!
EDIT
For getting an access token without dialogs for any user, you can use https://developers.facebook.com/tools/access_token/ to get an access token.
Try this simple function to post onto a wall:
Steps:
Request For manage_pages permission ( Allow this process ) :
Get Access token from URL :
If the administrator allows this permission. You should be redirected to URL below:
Use Access token in the URL and you should get this:
Check Access token using Graph API:
Connection will return information and access token for each page.
Implement it in your code:
You can use App access token while call a Facebook Graph API method.
Update:
If you want use API method in Facebook SDK, DEPRECATED REST API or FQL Query...
You have to use
users_accesstoken
this way:Method 1:
Use your account or users to login to your Facebook page with offline_access permissions and grab access_token while login success using
$facebook->getAccessToken()
, and save it in database so you can use it anytime.You can check the expiration time of the token here, token with
offline_access
permissions never expire except when the user changes his password or maybe anything else.Method 2:
You can update your
access_token
dynamically using the code below (say goodbye to expire token). Facebook shows this solution here, it's a sample code for executing an FQL Query:Code: