我正在尝试使用react-native-fsdk在android中进行登录。我已经安装并设置了应用程序中的所有内容。但是,当我单击ligon按钮时,其打开的Facebook并征求许可。授予权限后,不提供任何数据或任何错误。我尝试过任何解决方案,但都没有成功。
我正在android的模拟器中对此进行测试
This is Login code :
LoginManager.logInWithReadPermissions(['public_profile', 'email', 'user_birthday', 'user_likes']).then(
function(result) {
if (result.isCancelled) {
alert('Login was cancelled');
} else {
alert('Login was successful with permissions: '
+ result.grantedPermissions.toString());
}
},
function(error) {
alert('Login failed with error: ' + error);
}
);
This is my maainApplication.java
import com.facebook.CallbackManager;
import com.facebook.reactnative.androidsdk.FBSDKPackage;
public class MainApplication extends NavigationApplication {
private static CallbackManager mCallbackManager = CallbackManager.Factory.create();
protected static CallbackManager getCallbackManager() {
return mCallbackManager;
}
@Override
public boolean isDebug() {
// Make sure you are using BuildConfig from your own application
return BuildConfig.DEBUG;
}
protected List<ReactPackage> getPackages() {
// Add additional packages you require here
// No need to add RnnPackage and MainReactPackage
return Arrays.<ReactPackage>asList(
// eg. new VectorIconsPackage()
new FBSDKPackage(mCallbackManager)
);
}
@Override
public List<ReactPackage> createAdditionalReactPackages() {
return getPackages();
}
}
MainActivity.java
import android.content.Intent;
import com.facebook.CallbackManager;
import com.facebook.FacebookSdk;
import com.facebook.reactnative.androidsdk.FBSDKPackage;
public class MainActivity extends SplashActivity {
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
MainApplication.getCallbackManager().onActivityResult(requestCode, resultCode, data);
}
}
任何建议将不胜感激。谢谢
答案 0 :(得分:2)
logInWithReadPermissions
是react-native-fbsdk版本0.8.0中的方法。
您应该使用logInWithPermissions
,因为您的版本是react-native-fbsdk 0.10.0。
答案 1 :(得分:1)
尝试一下:
import { LoginManager, LoginButton, AccessToken, GraphRequest, GraphRequestManager } from 'react-native-fbsdk';
export function facebookLogin() {
return new Promise((resolve, reject) => {
LoginManager.logInWithReadPermissions(["public_profile, email"]).then(function (result) {
AccessToken.getCurrentAccessToken().then((data) => {
const accessToken = data.accessToken;
const responseInfoCallback = (error, result) => {
if (error) {
console.log(error);
console.log('Error fetching data=', error);
} else {
console.log("face",reslet imagePath = null;
};
const infoRequest = new GraphRequest(
'/me',
{
accessToken,
parameters: {
fields: {
string: 'email,name,first_name,middle_name,last_name, picture.type(large)',
},
},
},
responseInfoCallback,
);
new GraphRequestManager().addRequest(infoRequest).start();
});
}, function (error) {
console.log("Login fail with error: " + error);
resolve(false);
});
})
}