2011-06-28 5 views
2

facebook PHP SDKバージョン3を使用しています。SDKがfacebook idsを整数にキャストし、idsが32ビットシステムである2147483647より大きくなる可能性があるため、32ビットシステムでは機能しません最大整数値。Facebook PHP SDK 3は32ビットシステムでは動作しません、facebook idsはintとして扱われ、> 2147483647、最良の解決策になりますか?

私もhttps://github.com/facebook/php-sdk/issues/11

ここでの問題を発見し、このため、「そうハックではない」ソリューションを持っている人はいますか?

答えて

7

これを回避する方法があります。ただ、

$user = $signed_request['user_id']; 

をこの行を検索文字列

に整数を変更し、

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

にそれを変更しても

$user = $this->getUserFromAccessToken(); 

を見つけ、

$user = (string) $this->getUserFromAccessToken(); 
に変更します

とも

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

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

変更、それを見つけて、それが動作します。 Intは32ビットシステムでこのような長いユーザーIDを処理できないため、問題が発生しています。

1

Facebookに修正が出るまでは、コメントの中の1つの解決方法を使用することをお勧めします。

数値を文字列に変換することは、32ビットシステムでこれらの種類の問題の問題を解決する唯一の方法です。

関連する問題