2016-06-14 84 views
0

我正在使用Swift在Facebook上共享iOS應用程序的內容。iOS上的Facebook SDK共享不起作用

我寫了一個名爲FBManager的單例類和一個如下所示的函數。

func shareContent(content:String, contentURL:String?, contentTitle:String? , fromController controller:UIViewController { 
     let shareDialog = FBSDKShareDialog() 
     let shareLinkContent = FBSDKShareLinkContent() 

     shareLinkContent.contentDescription = content 

     if let url = contentURL 
     { 
      shareLinkContent.contentURL = NSURL(string: url) 
     } 

     if let title = contentTitle 
     { 
      shareLinkContent.contentTitle = title 
     } 

     shareDialog.delegate = self 
     shareDialog.fromViewController = controller 
     shareDialog.shareContent = shareLinkContent 
     shareDialog.show() 
    } 

但這並不甚至顯示一個對話框份額都在iOS 8和iOS 9 而是下面的委託方法被調用

func sharer(sharer: FBSDKSharing!, didFailWithError error: NSError!) { 
} 

與錯誤 - 「操作不能(com.facebook.sdk.share error 2.)「

有人可以幫忙嗎?

回答

0

Facebook SDK的錯誤代碼有些不明確,因爲它們涵蓋了相當大的錯誤域。你提供的代碼並不真正顯示變量的內容,所以我不能指出問題所在。但是,com.facebook.sdk.share error 2無效參數錯誤,通常由一個或多個FBSDKShareLinkContent成員的無效格式引起。

通常,您可以使用FBSDKErrorCode枚舉來切換(error as NSError).code並查找它屬於哪個域。 (在這種情況下,它會指向無效參數)

您也可以直接print(error)didFailWithError委託方法,將輸出錯誤的非常描述性的日誌和什麼原因造成的特別。

檢查您的contentURL,確保它始於http://https://或任何其他有效的協議。如果您正在使用或計劃使用其中一個,則imageURL也是如此。這很可能導致你的錯誤!

The SDK's error codes reference也許有幫助。