我正在尝试通过facebook
sdk获取信息,但到目前为止,我只获得用户的ID和名称,尽管我确定有可用的电子邮件,因为这是我的帐户。我一直在这里看几个答案,但到目前为止,没有一个解决我的问题。我在做什么错,为什么在我请求多个权限时它不返回更多数据?
这是我的代码:
fbLoginManager.logInWithReadPermissions(["public_profile", "email", "user_friends", "user_about_me", "user_birthday"], handler: { (result, error) -> Void in
if ((error) != nil)
{
// Process error
println("There were an error: \(error)")
}
else if result.isCancelled {
// Handle cancellations
fbLoginManager.logOut()
}
else {
var fbloginresult : FBSDKLoginManagerLoginResult = result
if(fbloginresult.grantedPermissions.contains("email"))
{
println(fbloginresult)
self.returnUserData()
}
}
})
以及获取用户数据的功能:
func returnUserData()
{
let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: nil)
graphRequest.startWithCompletionHandler({ (connection, result, error) -> Void in
if ((error) != nil)
{
// Process error
println("Error: \(error)")
}
else
{
println("fetched user: \(result)")
if let userName : NSString = result.valueForKey("name") as? NSString {
println("User Name is: \(userName)")
}
if let userEmail : NSString = result.valueForKey("email") as? NSString {
println("User Email is: \(userEmail)")
}
}
})
}
哪个返回:
fetched user: {
id = 55555555;
name = "Kali Aney";
}
User Name is: Kali Aney
自Graph-API版本2.4(Pod版本4.4.0)以来,Facebook Graph API打破了其向后兼容性(以默认方式使用时)。
FB Graph-API 2.4不会为用户返回所有默认字段
若要解决此问题,您可以使用显式图形版本2.3:
[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil tokenString:[FBSDKAccessToken currentAccessToken].tokenString version:@"v2.3" HTTPMethod:nil]
在这种情况下,FB确保v2.3至少在两年后可用。 https://developers.facebook.com/docs/graph-
api/overview
:
Graph
API有多个版本可随时访问。每个版本包含一组核心字段和边缘操作。我们保证从发布之日起至少2年内,这些核心API将在该版本中可用且未经修改。平台变更日志可以告诉您当前可用的版本。
要么
您可以通过询问您感兴趣的特定字段来使用新的Graph-API(v2.4):
[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields" : @"email,name"}]
因此,如果我以角色的身份登录,我就可以很好地访问这个视图。 但是,让我们做一个小的改变,重写一个方法... 这会给我一个...我不明白为什么。 为什么?!! 希望能得到一些帮助来解决这个问题。
我被困了24小时所以这是我的最后一次机会。 当我输入我的登录详细信息:电子邮件和密码,它说不正确的电子邮件。电子邮件在数据库里。我的注册表正常工作。我不明白为什么我的登录表单不工作或哪里出错。 当它在第100行显示“不正确的电子邮件”时,其中($row===false)。 我真的很困惑。如果有人能帮助我或与我一起工作,我将非常感激。 登录表单: Connectdb代码: PHP代码:
我已经创建了自己的android。这样我就可以使用隐藏的API调用“DisplayManager.connectWifiDisplay()”。 当我运行应用程序并调用该方法时,在通过Wifi Direct连接到显示器后, 我得到以下例外: java.lang.SecurityException:连接到wifi显示器所需的权限:用户10105和当前进程都没有android.Permission.CO
我有问题在Android Studio中创建外部存储的新目录。它可能必须做一些有权限的事情,但据我所知,一切似乎都很好。 我想做的是: 检查目录“/storage/emulated/0/Recordings”是否存在,如果不存在-创建目录 检查文件“/storage/simulated/0/Recordings/tempFile.raw”是否存在,如果存在-将其删除 使用“new FileOutp
我有一个针对SDK28的Android应用程序,所以我有处理的权限。我检查是否设置了,但当Exoplayer尝试读取文件(我验证该文件确实存在)时,我看到 com.google.android.exoplayer2.upstream.filedatasource$filedatasourceException:java.io.fileNotfoundexception:/storage/emula
我发送电子邮件验证并单击链接。然后我在对象上调用。这总是返回,可能是什么原因?