Tag: 脸书

在iOS6中获取用户个人资料照片?

我试过这个: meurl = [NSURL URLWithString:@"https://graph.facebook.com/me/picture"]; SLRequest *imageReq =[SLRequest requestForServiceType:SLServiceTypeFacebook requestMethod:SLRequestMethodGET URL:meurl parameters:nil]; imageReq.account = self.facebookAccount; [imageReq performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) { if (error) { NSLog(@"error -%@", [error debugDescription]); }else{ NSString *meDataString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; NSLog(@"image -%@", meDataString); } }]; 但我得到image – (nil) 。 我有一个用户信息的代码上面的其他请求,我得到的所有数据就好了。

用iOS的Facebook SDK发布到朋友的墙上

是否有可能使用iOS Facebook SDK的dialog方法发布到活跃用户的朋友的墙? 也就是说,假设授予了正确的权限? 使用对话方法,以"feed"作为动作,似乎只允许我张贴到用户的stream,而不是任何人。 我错过了什么? [facebook dialog:"feed" andParams:… andDelegate:self] 这些params只指定了职位的内容; 似乎没有任何方法来指定我想发布的configuration文件。

使用Facebook SSO作为唯一login机制,使用iOS客户端对REST API进行身份validation

我正计划使用Facebook作为我正在构build的应用程序的唯一login机制,并且需要对devise提供一些反馈。 这里呢 – 用户打开应用程序,并显示一个注册屏幕。 Facebook的授权stream程开始,让我们假设成功,用户已成功注册自己。 一旦成功,应用程序调用FacebookgraphicsAPI,并获取用户的名字,姓氏,电子邮件,出生date等数据,然后应用程序调用一个名为RegisterUser(string Fullname, string FirstName, string LastName …)的Web服务方法RegisterUser(string Fullname, string FirstName, string LastName …)在数据库中创build用户logging。 现在,对于后续的API调用,我需要validation请求是否真的来自我的应用程序(不一定是特定的用户)。 我查了一下S3 REST API,看起来每个请求都有一个称为Authorization的HTTP头,客户端通过附加一堆其他HTTP头如Date,Method,Request数据,用客户端的私钥对其进行签名,计算它的base64编码值。 这在服务器端validation以validation客户端。 现在,我很乐意执行所有这些,但有几个问题: 如果我有一个私钥,将它作为iOS应用程序本身的一部分是否安全? 有人可以从iOS应用程序二进制文件中提取密钥吗? 如果是这样,我该如何处理? 有没有其他的改变,你会对这个devise? 谢谢, Teja公司。

如何在iOS应用程序中对使用Facebook创build帐户的Instagram用户进行身份validation?

我创build了一个iOS应用程序,允许用户使用Instagramlogin。 我使用networking视图来显示Instagram的授权页面,详情请看这里 。 这对使用用户名和密码注册的Instagram用户非常有用。 但是,Instagram也为新用户提供了使用他们的Facebook账户创build账户的选项,并且已经走这条路线的用户无法login到我的应用程序,因为Instagramlogin页面没有给出与Facebook进行身份validation的选项。 我如何让这些用户login到我的应用程序?

Parse.com和Facebooklogin,运行无限循环

我更新了parsing和Facebook iOS SDK到最新版本,当我尝试login使用Facebook我的应用程序崩溃,从debugging器,我可以看到,它是在无尽的循环调用3-4方法。 我的login代码如下所示: – (void)openSession { UIViewController *topViewController = self.window.rootViewController; NSArray *permissions = [NSArray arrayWithObjects:@"user_likes", @"friends_likes", nil]; // Login PFUser using Facebook [PFFacebookUtils logInWithPermissions:permissions block:^(PFUser *user, NSError *error) { if (!user) { if (!error) { NSLog(@"Uh oh. The user cancelled the Facebook login."); } else { NSLog(@"Uh oh. An error occurred: %@", error); } […]

Facebook iOS SDK 3.0 – 会话未打开

我正在使用最新的Facebook iOS SDK 3.0 我需要在login过程中的帮助: 首先我在AppDelegate.h声明这个属性: @property (nonatomic, strong) FBSession *session; 并在ViewController类我得到这个在代码中使用它,如下所示: AppDelegate *delegate = [[UIApplication sharedApplication]delegate]; [delegate.session someproperty]; 我也有ViewController中的这个方法,从viewDidLoad调用: -(void)login { AppDelegate *delegate = [[UIApplication sharedApplication]delegate]; [delegate.session accessToken]; NSLog(@"%d",delegate.session.isOpen); if (!delegate.session.isOpen) { delegate.session = [[FBSession alloc] init]; if (delegate.session.state == FBSessionStateCreatedTokenLoaded) { [delegate.session openWithCompletionHandler:^(FBSession *session, FBSessionState status, NSError *error) { NSLog(@"%d", delegate.session.isOpen); // First […]

从Google / Facebook帐户重新validation用户

所以我需要创build一个REST API来为IOS应用程序提供function。 我们允许用户使用简单的帐户或Facebook / Googlelogin注册 。 最近我一直在阅读OAuth,并且我想我理解如何在我的情况下(当用户使用Facebook / Googlelogin时 )在我的应用上注册一个帐户时使用OAuth的过程: 我向各种社交提供商(例如FB / Google)注册我的IOS应用程序。 我终于安全地存储在后端的客户端ID /客户端密钥。 现在,用户点击应用程序上的社交loginbutton,然后将用户redirect到社交网站login并授予我的应用程序使用他们的社交帐户的权限。 社交oauth提供商将用授权码将用户redirect回我的服务器。 一旦我的服务器有授权码,我将使用这个,客户端ID和秘密(或任何其他特定的证书需要)从社交oauth提供者检索访问令牌。 现在我有用户的访问令牌,并可以使用他们的社交资源一段时间(耶)。 一旦我有他们的社交访问令牌,然后我发出一个生成的访问令牌的应用程序使用请求时,我的REST API(应用程序将只与我的REST API从现在)沟通。 我的问题: 上述过程是一个好的做法吗? 比方说,用户从应用程序注销(而不是从他们的社交帐户!)。 我仍然有他们的社交访问令牌,但我摧毁了我发给他们使用我的REST API的另一个标记。 现在用户回来login到我的应用程序使用社交login(例如Fb /谷歌)。 我将如何重新validation这些用户? 我知道我不需要用户再次提供权限,但是如何知道他们是Fb / Google的合法用户,并且在我的服务器端也有一个帐户? 如果成功login,Fb / Google会提供回应用程序,以便我可以发送回我的服务器:“是的,这个用户是Fb / Google的合法社交用户。” 在上述注册程序中,社会福利提供者将提供授权码。 在这种情况下,我会得到什么(后续login)? 基本上, 我需要find一种方法来重新发布访问令牌到我的REST API,以成功地在应用程序的FB / Google用户中重新注册。

FacebookSDK呈现login界面两次

使用iOS 6和FacebookSDK将读取和发布权限的请求分成两个独立的调用。 我不知道为什么这样做有什么好处,但似乎需要第一次通过Facebook用户界面两次。 在我的应用程序中,在用户select使用Facebook之前,我不会向Facebook请求任何东西,在这种情况下,他们首先会获得读取权限,然后再获取发布权限。 控制从我的应用程序切换到Facebook(阅读)回到我的应用程序,然后立即回到Facebook(发布),然后回到我的应用程序。 这是一个可怕的用户体验,尤其是因为脸书屏幕的“好”看起来与用户相同。 (为什么我按了两次好?) 我的代码,简而言之是: Check for a valid FBSession.activeSession if not open call FBSession openActiveSessionWithReadPermissions if successful call FBSession.activeSession reauthorizeWithPublishPermissions then publish post 代码工作,但用户体验糟糕。 我错过了什么吗?

Facebook iOS SDK不存储访问Cookie

这是一个非常奇怪的错误。 login时,facebook对象不会在设备上的safari上存储任何cookie,但它在模拟器上。 我怎么知道? NSHTTPCookie *cookie; NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; for (cookie in [storage cookies]) { NSString* domainName = [cookie domain]; NSLog(domainName); NSRange domainRange = [domainName rangeOfString:@"facebook"]; if(domainRange.length > 0) { [storage deleteCookie:cookie]; } } 在模拟器上运行时,我可以看到两个cookie的名字。 我在设备上得到零。 即使使用来自Facebook的DemoApp也会发生这种情况。 我不知道这是从哪里来的,所以我真的不知道可以提供什么信息来使这个post更完整。 请,请求我任何我现在失踪的东西。 代码只是从DemoApp,我没有改变/添加/删除任何东西。 谢谢。

是否有可能在iOS上使oauth安全?

是否有可能在iOS上使oauth安全? 我正在研究OAuth 2.0作为实现iOS套件“单套”应用程序的单一login+授权的一种手段。 为了解释我的担忧,我将简化并使用Facebook +使用Facebook进行身份validation的第三方应用程序(让我们来说一下“Words with Friends”)。 举例来说,我假设Facebook注册支持scheme / protocol“facebook://”,并且这个Words注册为支持“words://” 我也做了一个假设,即不可能在iOS应用程序中保护“客户机密”或协议,因为您可以反编译应用程序。 我已经想出了任何方法来确保安全性 。 另一个假设是,没有办法阻止两个应用程序注册来处理相同的协议。 两个应用程序都注册相同协议的行为是不确定的。 (虽然看起来设备上启动的第一个应用程序获得注册,而第二个应用程序注册被忽略) 如果我了解iOS设备上的Facebook(用户代理)和Words(客户端)之间的工作stream程,请执行以下操作: 用户启动单词 用户select通过Facebook的凭据login 单词调用openUrl(“facebook://”),其中包含字作为应用程序和redirecturi(即“words://”)的标识符 iOS启动Facebook应用程序 用户input凭证,Facebook应用程序根据Facebook授权服务器进行validation。 用户提示授权单词访问Facebook数据(即单词可以访问我的朋友列表) Facebook调用由字提供的callbackURI以及访问令牌(即words:// access_token?token_here) 单词使用此令牌访问我的朋友列表(即受保护的资源数据) 假设以上是正确的,如果我想恶意访问随机的朋友列表,我可以创build一个应用程序,该应用程序还可以注册以处理协议“words://”并将其存储在app store中。 如果有人安装了我的应用程序和单词,并且我的应用程序是成功注册的(即在单词之前在设备上启动的),那么: 启动Words,selectlogin,启动Facebook 用户authentication/授权 Facebook尝试通过在redirecturl上调用openUrl来redirect到Words 我的应用程序(不是话)启动 我的应用程序现在可以访问auth代码,(通过反编译学到的秘密)可以交换为access_token,有权访问你的朋友列表 我希望我的推理是有缺陷的,否则我必须得出结论(特别是)第三方应用程序的Facebook iOSauthentication是不安全的。 更一般地说, 是否可以在iOS应用程序上安全地实现OAuth 2.0(授权/隐式授权工作stream程)?