我的密码是。
private void facebook() {
List<String> permissions = Arrays.asList("public_profile", "email");
ParseFacebookUtils.logInWithReadPermissionsInBackground(this, permissions, new LogInCallback() {
@Override
public void done(ParseUser user, ParseException err) {
progressDialog.dismiss();
Log.e("Facebook", user + " " + err.getMessage());
if (user == null) {
Log.e("MyApp", "Uh oh. The user cancelled the Facebook login.");
} else if (user.isNew()) {
Log.e("MyApp", "User signed up and logged in through Facebook!");
} else {
userinfo(user);
Log.e("MyApp", "User logged in through Facebook!");
}
}
});
}
此代码总是提供用户为空。.我有使用最新的Facebook SDK
是
编译'com.facebook.android:facebook android sdk:4.0.1'
和Parse
是:Parse-1.9.1.jar
我还使用了Android Studio。单击按钮时调用此方法此方法为“工作”,表示facebook弹出窗口已打开,但它始终提供用户为空。此给定的is用户为空,但刷新后parseuser
不为空。
不确定,但检查您的应用程序https://developers.facebook.com的关键哈希设置。您需要在应用开发人员控制台中设置发布和调试版本的密钥哈希。可能是您刚刚为调试环境设置了密钥哈希。有关详细信息,请参阅设置发布密钥散列。希望有帮助。
ParseFacebookUtils.logInWithReadPermissionsInBackground(this, Arrays.asList("email", "user_photos", "public_profile", "user_friends")
, new LogInCallback() {
@Override
public void done(ParseUser user, ParseException err) {
if (user == null) {
Toast.makeText(Form.this,"User Already logged up through Twitter!",Toast.LENGTH_LONG).show();
} else if (user.isNew()) {
} else {
Toast.makeText(Form.this,"User Already logged up through Facebook!",Toast.LENGTH_LONG).show();
}
}
});
添加这个也...
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
ParseFacebookUtils.onActivityResult(requestCode, resultCode, data);
}
这个代码工作得很好。。
不要忘记在应用程序类中初始化ParseFacebookUtils类,正如文档中所示:
ParseFacebookUtils.initialize(this);
还将onActivityResult传递给ParseFacebookUtils。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
ParseFacebookUtils.onActivityResult(requestCode, resultCode, data);
}
希望有帮助;)。
来源:https://parse.com/docs/android/api/com/parse/ParseFacebookUtils.html
根据解析文档和我在web上找到的一些技巧,我按照这些步骤注册/登录/链接用户与ParseUsers。请检查您是否遗漏了任何步骤,因为我与您有相同的问题,我必须重新执行所有步骤:
发展重点:
cd C:\Program Files\Java\jdk1.8.0\u 05\bin keytool-exportcert-alias androiddebugkey-keystore C:\Users\YOUR NAME.android\debug.keystore | C:\OpenSSL\bin\OpenSSL sha1-binary | C:\OpenSSL\bin\OpenSSL base64
释放键:
cd C:\Program Files\Java\jdk1.8.0\u 05\bin keytool-exportcert-alias“您作为别名提供的名称”-keystore | C:\OpenSSL\bin\OpenSSL sha1-binary | C:\OpenSSL\bin\OpenSSL base64
libs
文件夹中添加了SDK的新.jar文件和ParseFacebookUtilsV4-1.9.1,并同步了build.gradle文件。strings.xml中添加了这一行:
我在我的
AndroidManifest.xml
内部应用程序标记中添加了这个:
<activity android:name="com.facebook.FacebookActivity"
android:configChanges=
"keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:label="@string/app_name" />
还有这个:
<meta-data android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id"/>
在应用程序的
build.gradle
中,我在android中添加了这些,因为Diamond
出现了一些错误(很抱歉,我记不起确切的错误):
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
由于一些未定义变量的错误,我将SDK版本更改为数字:
minSdkVersion 14
targetSdkVersion 19
同一文件中的相关
依赖项
:
compile fileTree(include: 'Parse-*.jar', dir: 'libs')
compile fileTree(include: 'ParseFacebookUtilsV4-*.jar', dir: 'libs')
compile 'com.facebook.android:facebook-android-sdk:4.0.0'
>
Parse.initialize(this, "hoMaK", "wWV193mE");
FacebookSdk.sdkInitialize(getApplicationContext());
ParseFacebookUtils.initialize(getApplicationContext());
final List<String> permissions = Arrays.asList("public_profile", "email");
fb.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view)
{
proDialog.show();
ParseFacebookUtils.logInWithReadPermissionsInBackground(HomeActivity.this, permissions, new LogInCallback() {
@Override
public void done(final ParseUser user, ParseException err) {
if (user == null) {
Log.d("MyApp", "Uh oh. The user cancelled the Facebook login.");
Toast.makeText(getApplicationContext(), "Log-out from Facebook and try again please!", Toast.LENGTH_SHORT).show();
ParseUser.logOut();
proDialog.hide();
}
else if (user.isNew()) {
Log.d("MyApp", "User signed up and logged in through Facebook!");
if (!ParseFacebookUtils.isLinked(user)) {
ParseFacebookUtils.linkWithReadPermissionsInBackground(user, HomeActivity.this, permissions, new SaveCallback() {
@Override
public void done(ParseException ex) {
if (ParseFacebookUtils.isLinked(user)) {
Log.d("MyApp", "Woohoo, user logged in with Facebook!");
proDialog.hide();
}
}
});
}
else{
Toast.makeText(getApplicationContext(), "You can change your personal data in Settings tab!", Toast.LENGTH_SHORT).show();
}
} else {
Log.d("MyApp", "User logged in through Facebook!");
if (!ParseFacebookUtils.isLinked(user)) {
ParseFacebookUtils.linkWithReadPermissionsInBackground(user, HomeActivity.this, permissions, new SaveCallback() {
@Override
public void done(ParseException ex) {
if (ParseFacebookUtils.isLinked(user)) {
Log.d("MyApp", "Woohoo, user logged in with Facebook!");
proDialog.hide();
}
}
});
}
else{
proDialog.hide();
}
}
}
});
}
});
通过以上所有步骤,我可以使用我的Facebook帐户注册或登录,我在Parse.com中的
\u User
对象中获得了一个新行,我可以随时更改数据(我作为一个普通注册用户处理)
我正在使用android Studio 0.8.2并希望将数据从文件读取到数组,但我得到了这个错误:无法解析符号FileUtils。错误在这一行: 我已经包括了commons-io-2.4。应用程序中的jar文件- 如果你需要更多信息,请告诉我。
驴你看,我要添加截取到我的应用程序添加这行代码com.mcxioke。截取:库aar:1.0.0建立。gradle文件 我也试着添加改装。但它给出了相同类型的错误:未能解决:bla bla bla。 所以我认为在我的情况下gradle不能同步任何其他库不同于com.android....... 我也尝试将这行代码添加到我的build.gradle。但是什么都没有改变 请指教 编辑:添加注释后生成。
我遵循了parse的教程,并根据他们的指导方针配置了我的FB开发人员帐户以及所需的包名和哈希键。在权限,我已经要求用户配置文件和电子邮件id,所以我应该得到他们的脸书id,全名,性别和电子邮件id作为脸书dcumentation。 我正在返回这个JSON。性别和电子邮件id不是以null值作为键的事件。当然,我已经覆盖了我的FB id。{“名称”:“Varun Agarwal”,“ID”:“111
问题内容: 我正在尝试使用Groovy和Java的ScriptEngine API解析XML。下面的代码正是这样做的,但是我想知道是否有更好的方法可以做到这一点。还有与此相关的性能影响吗? 输出: 问题答案: 您的Groovy脚本可能是 “ groovy-er” … 这做同样的事情: 确实,您可以使用而不是JVM脚本引擎,这可以使您了解:
问题内容: 在.Net中,我发现了一个很棒的库HtmlAgilityPack,它使您可以使用XPath轻松解析格式不正确的HTML。我已经在.Net站点中使用了几年,但是我不得不为我的Python,Ruby和其他项目选择更痛苦的库。有人知道其他语言的类似库吗? 问题答案: 在python中,ElementTidy解析标记汤并生成一个元素树,该树允许使用XPath进行查询:
问题内容: 我在JMeter中使用正则表达式遇到了一些麻烦。我有这种形式的HTML 我需要获取JMeter 中and 的值作为变量。 问题答案: 请改用XPath Extractor 。 如果 必须 使用正则表达式,只需搜索正则表达式标签解析即可。