Я разрабатываю плагин WordPress, который использует API Facebook для создания мгновенных статей. (Я использую SDK версии 5.3.1 отсюда: https://github.com/facebook/php-graph-sdk/tree/5.4) Он требует включения многих настраиваемых полей, следовательно, новый плагин вместо существующего. Я разработал его на своей локальной машине с помощью Linux-сервера Vagrant/VirtualBox, и оттуда я смог успешно аутентифицировать и создать мгновенную статью, которая затем появилась в списке на Facebook в разделе «Инструменты публикации»> «Мгновенные статьи»> «Статьи развития».Facebook Мгновенные статьи: Создание статей с помощью Graph API
Я развернул этот же код на веб-сервере, чтобы продолжить его тестирование. Аутентификация по-прежнему успешна, но когда я пытаюсь опубликовать статью с этого сервера, Instant Article никогда не создается и не отображается в списке на Facebook.
Удивительно, что ответы от обеих попыток кажутся почти идентичными. Одно отличие: accessToken значение, которое я обозначил как {access_token}
. Другие различия между ответами, отмеченными мной как {different}
.
Может ли кто-нибудь помочь мне понять, почему одно удается, а другое не удается без каких-либо очевидных ошибок в PHP или в ответах API?
Response с использованием локальной машины (успешно):
object(Facebook\FacebookResponse)#144 (6) {
["httpStatusCode":protected]=>
int(200)
["headers":protected]=>
array(13) {
["Access-Control-Allow-Origin"]=>
string(1) "*"
["Pragma"]=>
string(8) "no-cache"
["Cache-Control"]=>
string(44) "private, no-cache, no-store, must-revalidate"
["facebook-api-version"]=>
string(4) "v2.7"
["Expires"]=>
string(29) "Sat, 01 Jan 2000 00:00:00 GMT"
["Content-Type"]=>
string(31) "application/json; charset=UTF-8"
["x-fb-trace-id"]=>
string(11) "{different}"
["x-fb-rev"]=>
string(7) "{different}"
["Vary"]=>
string(15) "Accept-Encoding"
["X-FB-Debug"]=>
string(88) "{different}"
["Date"]=>
string(29) "Wed, 19 Oct 2016 16:24:51 GMT"
["Connection"]=>
string(10) "keep-alive"
["Content-Length"]=>
string(2) "25"
}
["body":protected]=>
string(25) "{"id":"{different}"}"
["decodedBody":protected]=>
array(1) {
["id"]=>
string(16) "{different}"
}
["request":protected]=>
object(Facebook\FacebookRequest)#145 (9) {
["app":protected]=>
object(Facebook\FacebookApp)#183 (2) {
["id":protected]=>
string(16) "{app_id}"
["secret":protected]=>
string(32) "{app_secret}"
}
["accessToken":protected]=>
string(168) "{access_token}"
["method":protected]=>
string(4) "POST"
["endpoint":protected]=>
string(29) "/{some_endpoint_id}/instant_articles"
["headers":protected]=>
array(1) {
["Content-Type"]=>
string(33) "application/x-www-form-urlencoded"
}
["params":protected]=>
array(3) {
["development_mode"]=>
string(1) "1"
["published"]=>
bool(false)
["html_source"]=>
string(1600) "<html> ... </html>"
}
["files":protected]=>
array(0) {
}
["eTag":protected]=>
NULL
["graphVersion":protected]=>
string(4) "v2.7"
}
["thrownException":protected]=>
NULL
}
Response с использованием on-сервера (сбой):
object(Facebook\FacebookResponse)#107 (6) {
["httpStatusCode":protected]=>
int(200)
["headers":protected]=>
array(13) {
["Access-Control-Allow-Origin"]=>
string(1) "*"
["Pragma"]=>
string(8) "no-cache"
["Cache-Control"]=>
string(44) "private, no-cache, no-store, must-revalidate"
["facebook-api-version"]=>
string(4) "v2.7"
["Expires"]=>
string(29) "Sat, 01 Jan 2000 00:00:00 GMT"
["Content-Type"]=>
string(31) "application/json; charset=UTF-8"
["x-fb-trace-id"]=>
string(11) "{different}"
["x-fb-rev"]=>
string(7) "{different}"
["Vary"]=>
string(15) "Accept-Encoding"
["X-FB-Debug"]=>
string(88) "{different}"
["Date"]=>
string(29) "Wed, 19 Oct 2016 16:02:08 GMT"
["Connection"]=>
string(10) "keep-alive"
["Content-Length"]=>
string(2) "24"
}
["body":protected]=>
string(24) "{"id":"{different}"}"
["decodedBody":protected]=>
array(1) {
["id"]=>
string(15) "{different}"
}
["request":protected]=>
object(Facebook\FacebookRequest)#106 (9) {
["app":protected]=>
object(Facebook\FacebookApp)#126 (2) {
["id":protected]=>
string(16) "{app_id}"
["secret":protected]=>
string(32) "{app_secret}"
}
["accessToken":protected]=>
string(164) "{access_token}"
["method":protected]=>
string(4) "POST"
["endpoint":protected]=>
string(29) "/{some_endpoint_id}/instant_articles"
["headers":protected]=>
array(1) {
["Content-Type"]=>
string(33) "application/x-www-form-urlencoded"
}
["params":protected]=>
array(3) {
["development_mode"]=>
string(1) "1"
["published"]=>
bool(false)
["html_source"]=>
string(1639) "<html> ... </html>"
}
["files":protected]=>
array(0) {
}
["eTag":protected]=>
NULL
["graphVersion":protected]=>
string(4) "v2.7"
}
["thrownException":protected]=>
NULL
}
Что происходит, когда вы запрашиваете данные об идентификаторе, который вы получили через API? – CBroe