2016-06-14 5 views
0

Я работаю над распространением контента на Facebook для приложения iOS с помощью Swift.Facebook SDK share на iOS не работает

Я написал одноэлементный класс под названием 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() 
    } 

Но это даже не показывает диалог доли как на прошивке 8 и прошивке 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 и найти, к какому домену он относится. (В этом случае он укажет на Invalid Argument)

Вы также можете использовать print(error) в методе делегата didFailWithError, который выдает очень описательный журнал ошибки и то, что вызвало ее.

Проверьте свой contentURL, убедитесь, что он начинается с http:// или https:// или любым другим действующим протоколом. То же самое для imageURL, если вы используете или планируете его использовать. Это, скорее всего, вызвало вашу ошибку!

The SDK's error codes reference также может быть полезен.