Facebook PHP SDK 3无法在32位系统上运行,facebook ids被视为int并且可以> 2147483647,最佳解决方案?

tir*_*hen 2 php facebook

我正在使用facebook PHP SDK版本3.事实证明它不适用于32位系统,因为SDK将facebook ids转换为整数,并且id可能大于2147483647,即32位系统最大整数值.

我也在这里找到了问题https://github.com/facebook/php-sdk/issues/11

有没有人对此有"不那么hacky"的解决方案?

gen*_*sis 7

有一个解决方法.只需将整数更改为字符串

找到这一行

$user = $signed_request['user_id'];
Run Code Online (Sandbox Code Playgroud)

并将其更改为

$user = (string) $signed_request['user_id'];
Run Code Online (Sandbox Code Playgroud)

并找到

$user = $this->getUserFromAccessToken();
Run Code Online (Sandbox Code Playgroud)

并将其更改为

$user = (string) $this->getUserFromAccessToken();
Run Code Online (Sandbox Code Playgroud)

并找到

$user = $this->getPersistentData('user_id', $default = 0);
Run Code Online (Sandbox Code Playgroud)

改为

$user = (string) $this->getPersistentData('user_id', $default = 0);
Run Code Online (Sandbox Code Playgroud)

它有效.Int无法在32位系统上处理如此长的用户ID,这就是为什么它会出现问题