gpt4 book ai didi

ios - 无需 SLCompose 或任何类型的对话即可与 Facebook 共享

转载 作者:行者123 更新时间:2023-11-28 08:51:36 25 4
gpt4 key购买 nike

import Foundation
class FacebookShareService {
private var shareImage : UIImage!
private var shareDescription : String?

init(image : UIImage, description : String?) {
self.shareImage = image
self.shareDescription = description
}

func start() {
if FBSDKAccessToken.currentAccessToken() != nil && FBSDKAccessToken.currentAccessToken().permissions.contains("publish_actions"){
self.startShareToFacebook()
} else {
getPublishPermission({ (error) -> () in
let alert = UIAlertView(title: "Error!!!", message: error.domain, delegate: self, cancelButtonTitle: "Close")
alert.show()
}, success: { () -> () in
self.startShareToFacebook()
})
}
}

private func startShareToFacebook() {
let dict : NSMutableDictionary = NSMutableDictionary()
if let des = self.shareDescription
{
dict.setValue(des, forKey: "caption")

}
dict.setValue(self.shareImage, forKey: "source")
FBSDKGraphRequest(graphPath: "me/photos", parameters: dict as [NSObject : AnyObject], HTTPMethod: "POST").startWithCompletionHandler { (conn : FBSDKGraphRequestConnection!, response : AnyObject!, error :NSError!) -> Void in
if error != nil {
print("Can't use graphApi me/photos")
let alert = UIAlertView(title: "Error!!!", message: error.domain, delegate: self, cancelButtonTitle: "Close")
alert.show()
} else {
let alert = UIAlertView(title: "", message: "Successful!!!", delegate: self, cancelButtonTitle: "Close")
alert.show()
}
}
}

private func getPublishPermission(fail : (error : NSError)->(),success:()->()) {
let loginManager : FBSDKLoginManager = FBSDKLoginManager()
loginManager.loginBehavior = FBSDKLoginBehavior.Native
loginManager.logInWithPublishPermissions(["publish_actions"], handler: { (loginResult:FBSDKLoginManagerLoginResult!, error :NSError!) -> Void in
if error != nil {
print("Can't login with permission public_action")
fail(error: error)
} else {
if let result = loginResult {
if loginResult.isCancelled {
print("Can not get permisson")
fail(error: NSError(domain: "Can not get permisson", code: 100000, userInfo: nil))
} else {
if let permissions = loginResult.grantedPermissions {
if permissions.contains("publish_actions") {
success()
} else {
print("Publish actions is not allowed")
let error : NSError = NSError(domain: "Publish actions is not allowed", code: 1000, userInfo: nil)
fail(error : error)
}
} else {
print("Publish actions is not allowed")
let error : NSError = NSError(domain: "Publish actions is not allowed", code: 1000, userInfo: nil)
fail(error : error)
}
}

} else {
print("Can not get permisson")
fail(error: NSError(domain: "Can not get permisson", code: 100000, userInfo: nil))
}
}
})

}
}

以上代码不适用于任何类型的解决方案或需要任何类型的现成源代码。在此代码中,他们使用的是旧 SDK,与新 SDK 不兼容。我正在使用最新的 ios SDK。热切地等待有人的帮助。

最佳答案

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[FBSDKProfile enableUpdatesOnAccessTokenChange:YES];
login.loginBehavior = FBSDKLoginBehaviorSystemAccount;
[login logInWithPublishPermissions:@[@"publish_actions"] handler:^(FBSDKLoginManagerLoginResult result, NSError error) {
if (error){

} else if (result.isCancelled){

} else{
if ([result.grantedPermissions containsObject:@"email"]){
if ([FBSDKAccessToken currentAccessToken]){
[self funcGetUserFBInfo];
}
}
}
}];

为了分享

FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init];
content.contentURL = [NSURL URLWithString:@"http://www.indianic.com/"];
[FBSDKShareDialog showFromViewController:self withContent:content delegate:self];
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
pasteboard.string = @"“Love only grows by sharing. You can only have more for yourself by giving it away to others”";

希望对你有帮助

关于ios - 无需 SLCompose 或任何类型的对话即可与 Facebook 共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34057770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com