1

Документация Real-time Updates говорит:Существуют ли различные типы токенов доступа к приложениям?

Во всех случаях необходимо отправить access_token OAuth Application. App маркера доступа получают, используя идентификатор приложения и ваш App секрет:

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

Я сделал это и вернулся строка формы access_token=<APP_ID>|<String1>-<String2>.

С другой стороны, метод BaseFacebook::getApplicationAccessToken() из PHP PHP SDK просто объединяет идентификатор приложения с App Secret (который выглядит как число с 32-разрядным шестнадцатеричным представлением), используя «|» в качестве разделителя:

/** 
* @return string The application access token, useful for gathering 
*    public information about users and applications. 
*/ 
protected function getApplicationAccessToken() { 
    return $this->appId.'|'.$this->appSecret; 
} 

В каких разных целях используются эти два вида токенов доступа к приложениям? Являются ли они взаимозаменяемыми?

ответ

1

Являются ли они взаимозаменяемыми?

Мое предположение, что они есть; что оба будут приняты в качестве токена доступа к приложениям для вашего приложения и предоставят вам точно такие же права на выполнение действий.

PHP SDK уже знает ваш идентификатор приложения, поскольку вы инициализировали экземпляр объекта Facebook с ним - так что не вредно использовать «простую» версию построения токена доступа. (И чтобы отдать другой способ создания токенов доступа к приложениям, использование конечной точки Graph API здесь будет глупо, потому что каждый может заглянуть внутрь кода.)

С другой стороны, могут быть случаи, когда ваш токен доступа к приложениям должен использоваться вне вашего контроля (?), поэтому они также предоставляют первую версию, так что вам не нужно выделять секрет вашего приложения.