在部署到 Heroku 时,是什么导致我的 Facebook PHP SDK 出现 "illegal character in input string" 异常?

What is causing my "illegal character in input string" exception with Facebook PHP SDK when deploying to Heroku?

"facebook/php-sdk-v4" : "4.0.*" - 解析为 4.0.15 Javascript SDK v2.2

我在使用最新的 JS SDK 和 PHP SDK 将我的 laravel 应用程序部署到 Heroku 时遇到问题。

它在本地 (nginx) 完美运行,但是当部署到 Heroku (Apache) 时,它在这里失败了: $helper = new FacebookJavaScriptLoginHelper(); 除了 - iconv_strlen(): 在输入字符串中检测到非法字符

包含本地和远程 cookie 的日志看起来(在结构上)相同,所以不是这样的:

[fbsr_75710##########] => dJPP8B2GrKYHLmM8826lLXsjclHexnHv4V-dooUISI0.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI......

我运行进入同样的问题。如果您查看完整的堆栈跟踪,您会发现 mb_strleniconv 和 returns 之前使用是一个糟糕的结果;事实证明,在 Heroku 上,mbstring 扩展 is not enabled by default。您需要在 composer.json 中手动请求它,在 "require": 位中:

"ext-mbstring": "*"

更新,推送,它应该适合你。有点迟到的答案,但希望这对 运行 遇到相同问题的任何人都有帮助。