ios - FBSDKLoginManager 未在 native ios 应用程序中打开登录对话框
<p><p>我是 iPhone 开发的新手,我想使用最新的 facebook sdk 4 从我的原生 iOS 简单应用程序进行 facebook 登录。我只想从自定义 <code>UIButton</code> 打开一个 facebook 登录对话框单击,在我的应用程序中,为此我在按钮单击方法中执行以下代码..</p>
<pre><code>- (IBAction)didTapLoginFaceBook:(id)sender {
FBSDKLoginManager *login = [ init];
handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if (error) {
// Process error
NSLog(@"Unexpected login error: %@", error);
NSString *alertMessage = error.userInfo ?: @"There was a problem logging in. Please try again later.";
NSString *alertTitle = error.userInfo ?: @"Oops";
[[ initWithTitle:alertTitle
message:alertMessage
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil] show];
} else if (result.isCancelled) {
// Handle cancellations
} else {
// If you ask for multiple permissions at once, you
// should check if specific permissions missing
if () {
// Do work
}
}
}];
}
</code></pre>
<p>此代码的工作方式有所不同,但我想打开一个登录对话框表单自定义 <code>UIButton</code> 在 nativeiOS 应用程序中单击。</p>
<p>所以,请用一些代码提出正确的方法,提前谢谢</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p><strong>在 Objective-C 中使用自定义按钮的 Facebook 登录 4.x</strong></p>
<pre><code>- (IBAction)btnFacebookPressed:(id)sender {
FBSDKLoginManager *login = [ init];
login.loginBehavior = FBSDKLoginBehaviorBrowser;
handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
{
if (error)
{
// Process error
}
else if (result.isCancelled)
{
// Handle cancellations
}
else
{
if ()
{
NSLog(@"result is:%@",result);
;
;
}
}
}];
}
- (void)fetchUserInfo {
if ()
{
NSLog(@"Token is available : %@",[tokenString]);
[[ initWithGraphPath:@"me" parameters:@{@"fields": @"id, name, link, first_name, last_name, picture.type(large), email, birthday, bio ,location , friends ,hometown , friendlists"}]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
if (!error)
{
NSLog(@"resultis:%@",result);
}
else
{
NSLog(@"Error %@",error);
}
}];
}
}
</code></pre>
<p><strong>在 Swift 中使用自定义按钮的 Facebook 登录 4.x</strong></p>
<pre><code>@IBAction func btnFacebookPressed(_ sender: Any) {
let loginManager = FBSDKLoginManager()
loginManager.loginBehavior = FBSDKLoginBehavior.browser;
loginManager.logIn(withReadPermissions: ["email"], from: self, handler: {(result : FBSDKLoginManagerLoginResult?, error : Error?) -> Void in
if error != nil {
// Process error
}
else if (result?.isCancelled)! {
// Handle cancellations
}
else if (result?.grantedPermissions.contains("email"))! {
print("result is: \(result)");
self.fetchUserInfo()
loginManager.logOut()
}
})
}
func fetchUserInfo() {
if let accessToken = FBSDKAccessToken.current()?.tokenString {
print("Token is available : \(accessToken)")
FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, link, first_name, last_name, picture.type(large), email, birthday, bio ,location , friends ,hometown , friendlists"]).start(completionHandler: { (connection : FBSDKGraphRequestConnection?, result : Any?, error : Error?) in
if let error = error {
print("Error \(error)")
}
else if let result= result {
print("result:\(result)")
}
})
}
}
</code></pre></p>
<p style="font-size: 20px;">关于ios - FBSDKLoginManager 未在 nativeios 应用程序中打开登录对话框,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/30771501/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/30771501/
</a>
</p>
页:
[1]