期間限定

キャンペーン中

体験授業申込

【Swift 開発】iOSアプリからfacebookでsnsシェアする方法

アプリを開発の際にline,twitter,facebookでsnsシェア機能を導入する機会があったので、そのときの工程をまとめました。

  1. 1 facebook for developersで開発者登録
  2. 2 facebook for developersで投稿機能を使いたいアプリを登録
  3. 3 FacebookSDKでCocoaPodsでライブラリを導入
  4. 4 info.plistでライブラリの設定をする
  5. 5 投稿の内容を設定

facebook for developersで開発者登録

https://developers.facebook.com

上記のサイトでユーザー登録します。

facebook for developersで投稿機能を使いたいアプリを登録

https://developers.facebook.com

またも上記のサイトです。

「マイアプリ」>「新しいアプリを追加する」から投稿機能を導入したいアプリを登録します。

ここで登録したapp idとアプリ名をinfo.plistの設定のときに使います。

FacebookSDKでCocoaPodsでライブラリを導入

pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'
pod 'FBSDKShareKit'

上記をPodfileに追加します。

$ pod install

追加したライブラリをインストールします。

info.plistでライブラリの設定をする

<key>FacebookAppID</key>
<string>{your-app-id}</string>
<key>FacebookDisplayName</key>
<string>{your-app-name}</string>
<key>LSApplicationQueriesSchemes</key>
<array>
  <string>fbapi</string>
  <string>fb-messenger-share-api</string>
  <string>fbauth2</string>
  <string>fbshareextension</string>
</array>  
<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleTypeRole</key>
    <string>Editor</string>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>fb{your-app-id}</string>
    </array>
  </dict>
</array>

これをinfo.plistに追加します。

投稿の内容を設定

import FBSDKCoreKit
import FBSDKShareKit
import FacebookShare

classの外でライブラリをimportします。

func fbShare() {
  let content = ShareLinkContent()
  content.contentURL = NSURL(string:url) as! URL
  content.hashtag = Hashtag(text)
  let dialog = ShareDialog()
  dialog.shareContent = content
  dialog.mode = ShareDialog.Mode.native
  dialog.show()
}

シェアの種類は何種類かありますが、今回はシェアダイアログを使います。

まとめ

このような流れに沿えば、簡単に導入できたのではないでしょうか。

詳しいことは公式ドキュメントに載っていますので、気になればそちらも参考にしてください。

https://developers.facebook.com/docs/swift


Warning: include(/var/www/html/tetraup.com/knocknote.jp/tmpl/aside.html): failed to open stream: No such file or directory in /var/www/html/tetraup.com/news_topics/wp-content/themes/news/archive.php on line 24

Warning: include(): Failed opening '/var/www/html/tetraup.com/knocknote.jp/tmpl/aside.html' for inclusion (include_path='.:/usr/share/pear7:/usr/share/php') in /var/www/html/tetraup.com/news_topics/wp-content/themes/news/archive.php on line 24