在我的LoginViewController中,我实现了FBSDKLoginButtonDelegate并导入了FBSDKLoginKit和FBSDKCoreKit。我在viewDidLoad中的代码如下所示:
//setting up facebook login button
var facebookLogin = FBSDKLoginButton()
//want this button to conform to this protocol
facebookLogin.delegate = self
facebookLogin.readPermissions = ["public_profile", "email", "user_friends"]
facebookLogin.frame = CGRectMake(20, 359, 335, 30)
self.view.addSubview(facebookLogin)
Run Code Online (Sandbox Code Playgroud)
这是按钮的代码:
public func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult
result: FBSDKLoginManagerLoginResult!, error: NSError!) {
if error != nil {
print(error.localizedDescription)
return
} else {
print("No error")
self.performSegueWithIdentifier("loginToFeed", sender: self)
}
}
Run Code Online (Sandbox Code Playgroud)
登录后,页面停留在此白屏,而不是返回到应用程序。因此,我继续按“完成”以手动返回到应用程序,并且控制台打印出没有错误,并继续进行到提要。现在,下一个有趣的部分是尽管登录时没有错误,但我仍未登录。你知道这是怎么回事吗?我错过了一步吗?
我正在尝试使用Facebook登录SDK和FBSDKLoginButton.我最初在白色背景上使用它,但当我改为非白色背景时,它暴露了一个非常奇怪的背景图像......
我不知道我可以改变它来隐藏那个奇怪的白色背景.
有没有人处理过这个?我怎么能隐藏那些白色的东西?
谢谢
我让 sdk 适用于 IOS,但对于 Android,当我调用 LoginManager.logInWithReadPermissions 时,承诺永远不会得到解决。模式出现,我插入 Facebook 凭据,我授权应用程序,模式关闭但没有承诺解决。
这是按钮点击代码(适用于 IOS)
LoginManager.logInWithReadPermissions(['public_profile', 'email', 'user_friends', 'user_birthday']).then(
function(result) {
console.log('Login success')
} else {
console.log('Login error')
}
},
function(error) {
console.log('Login error')
}
);
Run Code Online (Sandbox Code Playgroud)
主应用程序.java
package com.situa;
import android.support.annotation.NonNull;
import com.facebook.react.ReactPackage;
import com.reactnativenavigation.NavigationApplication;
import com.facebook.CallbackManager;
import com.facebook.appevents.AppEventsLogger;
import com.facebook.FacebookSdk;
import com.facebook.reactnative.androidsdk.FBSDKPackage;
import com.BV.LinearGradient.LinearGradientPackage;
import com.react.rnspinkit.RNSpinkitPackage;
import com.cmcewen.blurview.BlurViewPackage;
import com.imagepicker.ImagePickerPackage;
import com.airbnb.android.react.maps.MapsPackage;
import com.learnium.RNDeviceInfo.RNDeviceInfo;
import java.util.List;
import java.util.Arrays;
public class MainApplication extends NavigationApplication {
@Override
public boolean isDebug() {
return BuildConfig.DEBUG;
}
private …Run Code Online (Sandbox Code Playgroud) 我创建了一个应用程序来发布图像和文本,Facebook但我的客户要求是在不打开任何对话框和 safari 浏览器的情况下发布图像和文本。
我可以在Facebook不打开任何对话框或 Safari 的情况下使用用户 ID发布图像和文本吗?
我试过了 :
1) SLComposeViewController但它会首先打开共享对话框。
2) FBSDKShareDialog但它会进入 Safari 浏览器。
我需要Facebook在后台发布图像和文本。
我一直试图react-native-fbsdk与CocoaPods合作,因为我更喜欢将Facebook SDK作为该pod install过程的一部分,但是我运气并不好。我知道我可以react-native link使用npm库并手动下载并添加必要的框架,但是当我拥有一个非常好的软件包管理器时,这似乎很愚蠢。
从文档来看,它应该相当简单-只需将必要的Pod添加到Podfile,对吧?但是,无论我尝试哪种方式,似乎都不会包含本机FBSDK模块。我尝试了很多不同Podfile的,其中一些使用use_framework!和pod 'Bolts',一些使用pod 'FBSDKCoreKit'。这是我目前正在使用的:
target 'FacebookPods' do
pod 'FBSDKCoreKit'
pod 'FBSDKShareKit'
pod 'FBSDKLoginKit'
target 'FacebookPodsTests' do
inherit! :search_paths
end
end
Run Code Online (Sandbox Code Playgroud)
但是,当我运行测试应用程序并尝试对react-native-fbsdk模块执行任何操作时,会收到错误消息,抱怨未定义各种本机模块。这是我的index.ios.js文件,尝试访问LoginManager:
import React, {Component} from "react"
import {AppRegistry, Text} from "react-native"
import {LoginManager} from "react-native-fbsdk"
export default class FacebookPods extends Component {
componentWillMount() {
LoginManager.logInWithReadPermissions(["email"])
.then(() => console.log("Success!"))
.catch((err) => console.log("Failure!", err))
} …Run Code Online (Sandbox Code Playgroud) react-native fbsdk fbsdkloginkit react-native-fbsdk react-native-ios
我有一个 ios 应用程序,可以正常登录和 facebook 登录。今天我集成了 firebase,当我在应用程序委托中编写 FirebaseApp.configure() 时,我的应用程序崩溃了,这个函数用错误代码“unexpectedly found nil while unwrapping an optional value”突出显示:
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any]) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(app, open: url, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String, annotation: options[UIApplicationOpenURLOptionsKey.annotation])
}
Run Code Online (Sandbox Code Playgroud)
AppDelegate 类的代码是:
//
// AppDelegate.swift
//
//
// Created by Macbook on 01/01/2018.
// Copyright © 2018 Macbo0k. All rights reserved.
//
import UIKit
import IQKeyboardManagerSwift
import FBSDKCoreKit
import FBSDKLoginKit
import Firebase
import UserNotifications
import FirebaseInstanceID
import FirebaseMessaging
@UIApplicationMain
class …Run Code Online (Sandbox Code Playgroud) 我正在开发一个使用FacebookSDK登录的 iOS 应用程序。
登录并杀死应用程序后,currentAccessToken始终为零。它仅在我按下主页按钮并在应用程序仍在后台运行时重新打开它时才有效。
我开始使用警报,因为在杀死应用程序后日志无法正常工作。
AppDelegate.swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
let accessToken = FBSDKAccessToken.current()
if accessToken == nil {
Auth.auth().addStateDidChangeListener { (auth, user) in
alert(title: user?.uid ?? "1")
}
alert(title: "2")
} else {
alert(title: accessToken?.userID ?? "3")
}
}
Run Code Online (Sandbox Code Playgroud)
它始终在警报中显示“1”。
这是一个类似的问题: 退出应用程序后 FBSDKAccessToken currentAccessToken nil 或 iOS 9 Facebook Access Token 在未来的应用程序启动时为零
我已经尝试过:
帮助/建议,
提前致谢。
我不太懂 ObjectiveC 或 iOS,但我正试图用这段代码来解决这个新问题。我将 Facebook SDK pod 更新到 v12.0.0,现在收到此警告:
在以下代码块的最后一行找不到实例方法“-startWithCompletionHandler:”(返回类型默认为“id”)。
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:_graphPath
parameters:arrayParams
HTTPMethod:_httpMethod];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error)
{
Run Code Online (Sandbox Code Playgroud)
项目将构建并运行,但是当调用此代码时,会发出图形请求,然后引发异常:
因 NSException 类型的未捕获异常而终止 *** 由于未捕获异常“NSInvalidArgumentException”而终止应用程序,原因:“-[FBSDKGraphRequest startWithCompletionHandler:]:无法识别的选择器发送到实例 0x28241b000”
Facebook 官方文档说要这样实现:
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
if (!error) {
NSLog(@"fetched user:%@", result);
}
Run Code Online (Sandbox Code Playgroud)
}];
由于未找到 startWithCompletionHandler,xcode 警告仍然存在,并且使用此代码块仍然会引发异常。
任何方向将不胜感激,因为我已经用谷歌搜索自己陷入了昏迷!
我将 iOS 升级到 16.4.1(这需要我将 XCode 升级到 14.3,这需要我将 mac 操作系统从 12 升级到 13)后,在尝试构建 iOS Flutter 应用程序时收到此错误:
\n多个命令生成 \'/Users//Library/Developer/Xcode/DerivedData/Runner-bczatismiambuefczuntppsiskse/Build/Products/Debug-iphoneos/Runner.app/Frameworks/FBSDKCoreKit.framework\'
\n目标\'Runner\'(项目\'Runner\')具有来自\'/Users//Documents/AndroidStudioProjects//ios/Pods/FBSDKCoreKit/XCFrameworks/FBSDKCoreKit.xcframework/ios-arm64/FBSDKCoreKit.framework\'的复制命令到 \'/Users/<我的名称/Library/Developer/Xcode/DerivedData/Runner-bczatismiambuefczuntppsiskse/Build/Products/Debug-iphoneos/Runner.app/Frameworks/FBSDKCoreKit.framework\'
\n该命令取决于目标\'Runner\'(项目\'Runner\')中的命令:脚本阶段\xe2\x80\x9c[CP] Embed Pods Frameworks\xe2\x80\x9d
\n我还没有添加任何新的软件包、pod、插件……就在我的 iOS 和 Mac OS(和 XCode)更新之后,我收到了这个错误。
\n我已经检查了这个 stackoverflow 问题,这对我没有帮助。
\n错误消息提到了\xe2\x80\x9c[CP] Embed Pods Frameworks\xe2\x80\x9d这里是Build PhasesXCode 中的屏幕截图:
这是我的 XCode 中“构建阶段”>“复制捆绑资源”部分的屏幕截图(如果有的话)。(Info.plist里面没有)
我的 Pod 文件:
\n# Uncomment this line to define a global platform for your project\nplatform :ios, \'13.0\'\n\n# …Run Code Online (Sandbox Code Playgroud) fbsdk ×10
ios ×8
swift ×4
facebook ×3
objective-c ×3
react-native ×2
android ×1
firebase ×1
flutter ×1
xcode ×1