Как передать текст метки из приложения iPhone в facebook?

Я написал простой проект Xcode в swift для моего iPhone . Я пытаюсь отправить текст моей метки на facebook, используя опцию Facebook share .

Ниже приведен мой код

 import UIKit
import Social

class ViewController: UIViewController {

  @IBOutlet weak var musicDescription: UILabel!

  override func viewDidLoad() {
    super.viewDidLoad()

  }

  @IBAction func faceBookShareButton(sender: UIButton) {
    if SLComposeViewController.isAvailableForServiceType(SLServiceTypeFacebook) {
      let fbShare:SLComposeViewController = SLComposeViewController(forServiceType: SLServiceTypeFacebook)

      let text = musicDescription.text

      fbShare.setInitialText(text)


      self.presentViewController(fbShare, animated: true, completion: nil)

    } else {
      let alert = UIAlertController(title: "Accounts", message: "Please login to a Facebook account to share.", preferredStyle: UIAlertControllerStyle.Alert)

      alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))
      self.presentViewController(alert, animated: true, completion: nil)
    }

  }

}

Но я не могу увидеть текст метки в моей временной шкале facebook. Кто-нибудь проводите меня сюда . Почему текст не публикуется в facebook ?

Изменить: Обновить
Я загрузил файлы FBSDK и добавил их в свой проект . Я импортировал FBSDKShareKit в мой ViewController.H файл.

Вот мой код

 @IBAction func faceBookShareButton(sender: UIButton) {



 if UIApplication.sharedApplication().canOpenURL(NSURL(string: "fb:")!) {
  var content: FBSDKShareLinkContent = FBSDKShareLinkContent()

  var Subject: String = String(format: "FBSDKShareKit is an alternative to this issue")

  content.contentTitle = "FBSDKShareKit"
  content.contentDescription = Subject

  var dialog: FBSDKShareDialog = FBSDKShareDialog()
  dialog.fromViewController = self
  dialog.shareContent = content
  dialog.mode = FBSDKShareDialogModeWeb
  dialog.show()
}

Я получаю ошибку » использование неразрешенного идентификатора FBSDKShareDialogModeWeb»
.
Кто-нибудь помогите пожалуйста !

2 ответа

  1. Необходимо проверить возвращаемое значение setInitialText(_:)метода.

    Эта функция может вернуться false. Документ Apple описывает следующее.

    значение

    Возвращает логическое значение, указывающее, был ли текст успешно установлен.

    1. Использование FBSDKShareKit не является полной альтернативой, но он помогает показать предварительно заполненный контент на экране диалога share.

    2. Для базового проверьте следующую ссылку cocoapods .Откройте терминал установка cocoapods

      $ sudo gem установить cocoapods

      1. откройте каталог проекта, например: cd / desktop/TestSwift,

      2. Затем, чтобы создать файл pod в проекте после открытия каталога проекта добавьте следующую строку pod initэто создаст подфайл внутри проекта

      3. Откройте подфайл в TextEdit из finder.для установки FBSDK добавьте pod 'FBSDKShareKit'весь подфайл будет выглядеть так

        platform :ios, '8.0'
        use_frameworks!
        
        target 'TestSwift' do
        
           pod 'FBSDKShareKit','~> 4.8.0'
           pod 'FBSDKCoreKit','~> 4.8.0'
        
        end
        
        target 'TestSwiftTests' do
        
        end
        
        target 'TestSwiftUITests' do
        
        end
        
      4. Теперь в вашем терминале внутри вашего типа каталога проекта pod installadd hit enter это установит все модули, добавленные в ваш подфайл.

        Installing FBSDKShareKit (4.8.0)
        

        Примечание: после установки pod в вашем проекте .xcworkspaceбудет создан файл. Вместо использования .xcodeprojвы должны использовать .xcworkspaceдля дальнейшего процесса вашего проекта

    3. Так как мы используем swift, мы должны добавить заголовок моста над проектом.это помогает в добавлении работы фрейма Objective-C в swift project.

    4. Как создать заголовок моста: используйте Command ⌘ + Nв разделе ios-sourceвыберите имя файла заголовка его как * BridgingHeader.H * * выберите местоположение и создайте его.
    5. Затем импортируйте ваш pod-файл в файл заголовка моста он должен выглядеть следующим образом

      #ifndef BridgingHeader_h
      #define BridgingHeader_h
      
      #import <FBSDKCoreKit/FBSDKCoreKit.h>
      #import <FBSDKShareKit/FBSDKShareKit.h>
      
      #endif /* BridgingHeader_h */
      
    6. Теперь мы успешно создали заголовок моста, чтобы убедиться, что ваш заголовок моста добавлен успешно открытTargets, а затем выберите вкладку целевой открыть Build Settingв строке поиска тип моста.В результате поиска в разделе Objective-C BridgingHeader у вас должно быть имя проекта/BridgingHeader.ч

    Введите описание изображения здесь

    1. Теперь добавьте код в действие кнопки следующим образом:

       if UIApplication.sharedApplication().canOpenURL(NSURL(string: "fb:")!) {
              let content : FBSDKShareLinkContent = FBSDKShareLinkContent()
      
              content.contentURL = NSURL(string: "https://google.com")
              content.contentTitle = "Test"
              content.contentDescription = "FBSDKShareKit is an alternative to this issue"
              content.imageURL = NSURL(string:"https://pixabay.com/static/uploads/photo/2015/10/01/21/39/background-image-967820_960_720.jpg")
      
              let ShareKit: FBSDKShareDialog = FBSDKShareDialog()
              ShareKit.fromViewController = self;
              ShareKit.shareContent = content
              ShareKit.mode = FBSDKShareDialogMode.FeedBrowser
              ShareKit.show()
       }
      
    2. Использование неразрешенного идентификатора FBSDKShareDialogModeWeb для исправления этой замены dialog.modeследующим образом

       ShareKit.mode = FBSDKShareDialogMode.FeedBrowser
      

    I’M using .FeedBrowser, потому что работает хорошо для меня.

    FBShareDialogue:

    Введите описание изображения здесь

    FBTimeline:

    Введите описание изображения здесь

    Теперь мы получили все в сроки.Название, Описание,Изображение, SiteURL.