質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Facebook

Facebookは、実名登録制のSNS(ソーシャル・ネットワーキング・サービス)です。開発者用のデベロッパーサイトが存在し、一般ユーザーによるFacebook向けアプリケーション開発が可能です。

Q&A

解決済

3回答

2186閲覧

jetpackのFacebookの自動投稿のコードがどのファイルにあるのか知りたい

tokunagas

総合スコア8

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Facebook

Facebookは、実名登録制のSNS(ソーシャル・ネットワーキング・サービス)です。開発者用のデベロッパーサイトが存在し、一般ユーザーによるFacebook向けアプリケーション開発が可能です。

1グッド

0クリップ

投稿2016/06/13 13:07

編集2016/06/14 13:41

###実現したいこと
WordPressのJetpackプラグインでFacebookへの自動投稿を行いたいのですが、
テーマがカスタマイズされている為、正常に動作しませんでした。
何が原因で投稿処理が失敗しているのか調査したいのですが、
何分WordPressに対しての知識が乏しく、
ソースを見てもどこにFacebookに対する投稿処理が記述されているのかわかりません。
ネットで検索してもJetpackプラグインのソースに関して解説しているサイトは少なく、
Facebookの投稿に関するソースについて解説しているサイトは見つけられませんでした。

どなたかWordpressに詳しい方がいらっしゃいましたら、
Facebookに対する投稿処理がJetPackプラグイン内のどのファイルの何行目にあたりに記載されているのか教えていただけるとありがたいです。

###発生している問題
管理側の「投稿」機能から記事を投稿した際にWPに対しての登録は正常に行われるが、
Facebookのタイムラインに投稿内容が反映されない。

###確認済み事項
・カスタマイズされたテーマを使用しない場合(「Twenty Fifteen」に変更した場合)は投稿可能
・Twitterの自動投稿はカスタマイズされたテーマでも正常に動作を確認
・Jetpackプラグイン以外の全てのプラグインを停止しても自動投稿不可

###2016/06/14 追記
facebook.phpを可能な限り、デフォルトのテーマに近づけてみましたが問題は解決しませんでした。
また、ogpについても再度確認してみましたが、やはりテーマ内のソースにそれらしい出力は見当たりませんでした。

掲題の件について独自に調べてみたところ、
どうやら下記のような手順でSNSへの投稿が行われているようです。

jetpackプラグインディレクトリ/class.jetpack-ixr-client.php(Line:36)

function query() { …省略… $response = Jetpack_Client::remote_request( $this->jetpack_args, $xml );

上記の関数で自動投稿APIへのリクエストを行っています。
(自動投稿以外、通常の画面読み込み時なども呼ばれている)

どうやら各SNSへの自動投稿処理はプラグイン内にソースがあるのではなく、
外部のサーバ(JetPackの公式サイトのあるサーバ)にあるAPIで処理を行っているようです。
また、APIをリクエストする際にPOSTデータをXMLデータに変換して送信しているのですが、
XMLデータに連携先のfacebookのアカウント情報等は含まれませんでしたので、
おそらくjetpackの設定でfacebookアカウントの連携を行う際に、
jetpackのサーバー側に保持してるDBにfacebookの連携に必要なデータを保持し、
APIの処理ではXMLデータに含まれる「blog_id」等にそのデータを紐付けて取得しているのではと思われます。
(というのが自分の妄想です。)

上記の処理で送信しているXMLデータについて、
デフォルトテーマとカスタマイズされたテーマとで比較してみましたが、
送信されている値はほぼ一緒でした。
となると問題はAPIでどのようなデータの取得を行っているのかという点になるのですが、
いずれにしてもそこにテーマの情報が絡んでくるのは謎です。

ひとまずはjetpackの導入は諦めて、
別のプラグインを導入を検討中です。

nnssn👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

自己解決

質問にも追記したとおり、
jetpackを使用できない件については原因なまま調査は打ち切りました。

代わりに、下記のプラグインを導入しました。
「NextScripts: Social Networks Auto-Poster」
https://wordpress.org/plugins/social-networks-auto-poster-facebook-twitter-g/

他にもいくつかプラグインを試してみましたが、
「Social Networks Auto-Poster」(通称:SNAP)が一番使いやすく処理も安定している印象を受けました。

掲題の件について解決したわけではありませんが、
jetpackとは別のプラグインを導入することで、
自動投稿に関しての要件を満たすことはできましたので、
当質問はこれで解決済みといたします。

皆さんご協力ありがとうございました。

投稿2016/06/15 14:33

tokunagas

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

テーマ側でogpが挿入されているとか、SEOとかのプラグインでogpが挿入されているなどでheadタグの中にogpが重複しているということはありませんか?

jetpackでパブリサイズ共有とかが有効になると、自動でjetpackのogpが挿入されたりします。これら重複が原因で投稿できなかったという事例が以前ありました。

念の為headタグの中のogpが重複して入っていないかを確認してみて下さい。またfacebookにログインしないと使えませんがogpをチェックするデバッガみたいのもfacebookが提供していたと思うので、それらを利用して確認しても良いかと思います。

投稿2016/06/13 14:20

hidekichi

総合スコア366

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tokunagas

2016/06/13 14:29

ご回答ありがとうございます。 一度その線でも調査してみたのですが、 テーマ側でogpタグを挿入している様子はありませんでした。 プラグインについても同様で、ogpタグを挿入するようなものは無かったと思います。 上記のことから、おそらく今回の原因とは関係ないと思っているのですが、 念のためもう一度ogpタグが重複していないか確認してみようと思います。
guest

0

functions.phpの記載を少しずつ減らして確認してみてはいかがでしょうか。
また、エラーは確認されていますでしょうか。

【WordPress初心者におすすめ!デバッグモードの使い方 | Mignon Style】
http://mignonstyle.com/debug-mode/

「wp-config.phpに書かれている」と書いてありますが、環境によって書かれていないことがあります。その場合はwp-config.phpの最後に追記してください。

PHP

1define('WP_DEBUG', true);

投稿2016/06/13 13:26

kei344

総合スコア69398

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tokunagas

2016/06/13 13:42

早速のご回答ありがとうございます。 >functions.phpの記載を少しずつ減らして確認 やっぱりこれしかないですよね・・・。 デバッグモードに関しては使用していますが、 質問にもあるとおり、Facebookのタイムラインに投稿が反映されないだけで、 WP側では正常に投稿が完了しているので、エラーも出力されていないみたいです。 ひとまず、他に回答がつくまでは functions.phpを削って原因を特定する方向で進めてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問