Facebook PHP SDK 3 не будет работать на 32-битной системе, иидентификаторы facebook, обработанные как int, и могут быть> 2147483647, лучшее решение?

Я использую facebook PHP SDK версии 3. Оказывается, он не будет работать на 32-битной системе, так как SDK отличает идентификаторы facebook к целым числам, а идентификаторы могут быть больше, чем 2147483647, что представляет собой 32-разрядную систему max integer стоимость.

Я также нашел проблему здесь https://github.com/facebook/php-sdk/issues/11

Есть ли у кого-то, у кого есть «не столь хакерское» решение?

Для этого есть обходной путь. Просто измените целое число на строку

Найти эту строку

$user = $signed_request['user_id']; 

и изменить его на

 $user = (string) $signed_request['user_id']; 

а также найти

 $user = $this->getUserFromAccessToken(); 

и изменить его на

 $user = (string) $this->getUserFromAccessToken(); 

а также найти

 $user = $this->getPersistentData('user_id', $default = 0); 

измените его на

 $user = (string) $this->getPersistentData('user_id', $default = 0); 

И это работает. Int не способен обрабатывать такие длинные идентификаторы пользователей на 32-битных системах, поэтому он создает проблемы

Пока Facebook не придумает исправление, я предлагаю вам использовать одно из решений в комментариях.

Преобразование числа в строку – единственный способ разрешить вашу проблему для этих типов чисел в 32-битной системе.