我对使用 FB 应用程序完全陌生,这可能是一个非常愚蠢的问题,但我一直无法弄清楚。
我已将我的应用程序设置为在权限页面上询问用户的电子邮件,但它要求的更多。它需要“你的公开资料、朋友列表、电子邮件地址、生日、家乡、网站和个人描述”。我认为我不需要所有这些,尽管我正在使用 Wordpress 的第三方插件(Wordpress 社交登录)来处理这个问题。
我是否在 Facebook 端遗漏了什么,或者我应该在我的 Wordpress 插件中寻找它的来源?
权限在 WordPress 社交登录插件中设置。您可以更改它,但更改将在下一次插件更新时丢失。对于 2.2.2 版,以下工作:
在 /wp-content/plugins/wordpress-social-login/includes/services/wsl.authentication.php 第 180 行附近,找到:
// set default scope and display mode for facebook
if( strtolower( $provider ) == "facebook" ){
$config["providers"][$provider]["scope"] = "email, user_about_me, user_birthday, user_hometown, user_website";
$config["providers"][$provider]["display"] = "popup";
$config["providers"][$provider]["trustForwarded"] = true;
并删除“、user_about_me、user_birthday、user_hometown、user_website”。
我没有对此进行测试,但如果您启用了联系人导入,您可能需要进一步了解;在第 200 行附近,找到:
// if contacts import enabled for facebook, we request an extra permission 'read_friendlists'
# https://developers.google.com/+/domains/authentication/scopes
if( get_option( 'wsl_settings_contacts_import_facebook' ) == 1 && strtolower( $provider ) == "facebook" ){
$config["providers"][$provider]["scope"] = "email, user_about_me, user_birthday, user_hometown, user_website, read_friendlists";
}
并删除“user_about_me,user_birthday,user_hometown,user_website,”
查看您的 wordpress 插件:权限嵌入在对FB.login
.
编辑:他们用 PHP 做。您要查找的文件是hybridauth/Hybrid/Providers/Facebook.php。您会注意到在该文件的顶部有一行如下所示:
public $scope = "email, user_about_me, user_birthday, user_hometown, user_website, read_stream, offline_access, publish_stream, read_friendlists";
这些是范围。编辑它,你应该很高兴。
注意:改变这些,你可能会破坏其他东西,所以祝你好运。
这是此页面上显示的钩子 https://wordpress.org/support/topic/wordpress-social-login-cantt-work-invalid-scope-user_friends/
function wsl_change_default_permissons( $provider_scope, $provider )
{
if( ‘facebook’ == strtolower( $provider ) )
{
$provider_scope = ’email, public_profile’;
}
return $provider_scope;
}
add_filter( ‘wsl_hook_alter_provider_scope’, ‘wsl_change_default_permissons’, 10, 2 );