1
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))
}
}
})
}
}
上面的代碼是不工作的任何一種解決方案或任何種類的現成的來源是needed.in這個代碼,他們使用的是舊的SDK,並與新的SDK不兼容。我正在使用最新的ios SDK。急於等待某人的幫助。分享與Facebook沒有SLCompose或任何形式的對話
感謝性反應,我的問題是「分享與Facebook沒有SLCompose或任何形式的對話」 – 2015-12-03 08:50:13