There are two solutions to this problem. If the events are public and there is no age restriction on the page, you can use an app_access_token
to call the API and retrieve the events.
You can do this by starting an newAppSession
:
FacebookSession::newAppSession();
The second option is to log an admin into your app and use a long lived access token to call the API. This required the administrator to log-in at least once but the token will not expire unless the admin changes their password or revokes the app.
Once the user is logged in, you can call:
// get long-lived session
$long_session = $session->getLongLivedSession();
// set page access_tokens
$request = new FacebookRequest( $long_session, 'GET', '/me/accounts' );
$response = $request->execute();
// get response
$page_tokens = $response->getGraphObject()->asArray();
This will return a list of long-lived page access_tokens that can be used to then call the Events API.