# FacebookApp for the Facebook SDK for PHP
In order to make requests to the Graph API, you need to [create a Facebook app](/apps) and obtain the app ID and the app secret. The `Facebook\FacebookApp` entity represents the Facebook app that is making the requests to the Graph API.
%FB(devsite:markdown-wiki:info-card {
content: "It is quite uncommon to work with the `FacebookApp` entity directly since the `Facebook\\Facebook` service handles injecting it into the required classes for you.",
type: 'warning',
})
## Facebook\FacebookApp {#overview}
To instantiate a new `Facebook\FacebookApp` entity, pass the app ID and app secret to the constructor.
~~~~
$fbApp = new Facebook\FacebookApp('{app-id}', '{app-secret}');
~~~~
Alternatively you can obtain the `Facebook\FacebookApp` entity from the [`Facebook\Facebook`](/docs/php/Facebook) super service class.
~~~~
$fb = new Facebook\Facebook([/* . . . */]);
$fbApp = $fb->getApp();
~~~~
You'll rarely be using the `FacebookApp` entity directly unless you're doing some extreme customizations of the SDK for PHP. But this entity plays an important role in the internal workings of the SDK for PHP.
## Instance Methods {#instance-methods}
## getAccessToken() {#get-access-token}
~~~~
public Facebook\Authentication\AccessToken getAccessToken()
~~~~
Returns an app access token in the form of an [`AccessToken`](/docs/php/AccessToken) entity.
## getId() {#get-id}
~~~~
public string getId()
~~~~
Returns an the app id.
## getSecret() {#get-secret}
~~~~
public string getSecret()
~~~~
Returns an the app secret.
## Serialization {#serialization}
The `Facebook\FacebookApp` entity can be serialized and unserialized.
~~~~
$fbApp = new Facebook\FacebookApp('foo-app-id', 'foo-app-secret');
$serializedFacebookApp = serialize($fbApp);
// C:29:"Facebook\\FacebookApp":54:{a:2:{i:0;s:10:"foo-app-id";i:1;s:14:"foo-app-secret";}}
$unserializedFacebookApp = unserialize($serializedFacebookApp);
echo $unserializedFacebookApp->getAccessToken();
// foo-app-id|foo-app-secret
~~~~