Simplicityの特徴 › フォーラム › Simplicity2に関する話題何でも › Push7ボタンのリンク先が空になる
-
投稿者投稿
-
-
2016年4月5日 12:19 PM #38666
まさひこ
ゲスト2.1.3でPush7ボタンを設置したのですが、ボタンのリンク先が空になってしまいます。
例えば具体的には下記URLの記事のようにボタンは設置できるのですが、ボタンを押しても登録できません。
ソースを見るとボタンのリンク先が”//”になっています。
http://masalog.net/how-to-write-book-review.htmlAPPNOを確認して入力し直したり、キャッシュの削除も行いましたが状態が変わりません。
原因として何が考えられるでしょうか。 -
2016年4月6日 12:09 PM #38720
わいひら
キーマスター以下のURLのAPPNOをまさひこさんのものに変更してアクセスすると、どのような値が返りますか?
https://api.push7.jp/api/v1/APPNO/head
返ってきた値を全てコピペして貼り付けてみてください。ちなみに当サイトのものはこんな感じになります。
{"alias":null,"domain":"simplicity.app.push7.jp","icon":"https://dashboard.push7.jp/uploads/0d99429663304022937676faed1e8b18.png","name":"Simplicity","subscribers":32,"url":"http://wp-simplicity.com/"}
-
2016年4月6日 2:27 PM #38739
まさひこ
ゲストコメントありがとうございます。
以下の値が返ってきます。
{"alias":"push.masalog.net","domain":"masalog.app.push7.jp","icon":"https://dashboard.push7.jp/uploads/a8c48d90c6994f80a96984c6b449c4ba.png","name":"MasaLog","subscribers":1,"url":"http://masalog.net"}
push.masalog.netのサブドメイン設定は済んでいて、Push7サイトで表示されるサンプルボタンは動作します。
また、子テーマを使っているせいかなと、試しに親テーマで設定してみましたが同じ症状でした。 -
2016年4月7日 1:55 PM #38781
まさひこ
ゲスト私がSNS Count cacheを利用しているのが関係しているようです。
ふと思いついて無効にしてみたところ、空欄で何も表示されなかったPush7の共有数に数字が表示されました。
ただ、リンク先は相変わらず空です。
無効なボタンなので一旦配置から外しました -
2016年4月7日 2:15 PM #38782
Hidekichi
ゲストボタンを外されたということですが、違うページではまだ見えているのでおそらくキャッシュかと。
mod_spageSpeedとか。
-
2016年4月7日 5:55 PM #38797
わいひら
キーマスターPush7は、キャッシュとは関係ないので、SNS Count cacheは、おそらく関係ないと思います。
当サイトもSNS Count cacheを使用しています。
hidekichiさんがおっしゃるように、キャッシュの可能性もあると思います。
以下の対策などを確認してみてください。
動作不良時のガイドライン -
2016年4月7日 7:50 PM #38804
まさひこ
ゲストボタンが見えたのはHidekichiさんにご指摘いただいたタイミングで、いろいろ試してみるのにまたボタンをオンにしていたためだと思います。
ソースのsns-buttons-balloon.phpを見させていただいてPush7の箇所の条件にscc_exists()を使われていたので関係あるかなと試してみた次第です。
キャッシュは削除しました。エックスサーバーですがmod_pagespeedはoffです。PC2台とiPhoneで確認しています。
今は試しにsns count cacheを無効にしてボタンを表示させてみていますが、登録数は見えるのですがリンクが空です。
うーん。もうちょっといろいろ確認してみます。
-
2016年4月7日 8:24 PM #38808
Hidekichi
ゲスト何をされたかわかりませんが今は正常に出てるっぽいですね。
-
2016年4月7日 8:31 PM #38810
謝花勇武
ゲストこんばんは
実は私も本日Simplicity2.1.3にアップグレードして
設定したのですが
リンク先が空欄となっています上記のフォーラムで書かれてることすべてやったのですが・・・
どうもうまくいかず・・・ -
2016年4月7日 8:48 PM #38811
わいひら
キーマスター一番考えられる原因は、APPNOの設定に失敗していて、APIで値が取得できてないということです。
それを確かめる手段として、lib/sns.phpにあるfetch_push7_info()関数を以下のものに差し替えて、出力されるテキストを貼り付けてもらってよろしいでしょうか。//Push7情報取得 function fetch_push7_info(){ $res = 0; $app_no = get_push7_follow_app_no(); if ( $app_no ) { $url = 'https://api.push7.jp/api/v1/'.$app_no.'/head'; $info = wp_remote_get( $url ); if (!is_wp_error( $info ) && $info["response"]["code"] === 200) { $info = json_decode( $info['body'] ); echo('<pre>'); var_dump($info); echo('</pre>'); if ( $info ) { $res = $info; } } } return $res; }
テキストを取得したら、関数は元に戻してください。
-
2016年4月7日 9:12 PM #38812
謝花勇武
ゲスト出力されるテキスト
というのはリンク先でよろしいでしょうか?「https:///」
fetch_push7_info()関数を指示通り変更してでたリンク先は上記の通りです。
-
2016年4月7日 9:25 PM #38813
わいひら
キーマスターでは、こっちの関数で試してみてください。
//Push7情報取得 function fetch_push7_info(){ $res = 0; $app_no = get_push7_follow_app_no(); if ( $app_no ) { $url = 'https://api.push7.jp/api/v1/'.$app_no.'/head'; $info = wp_remote_get( $url ); echo('<pre>'); var_dump($info); echo('</pre>'); if (!is_wp_error( $info ) && $info["response"]["code"] === 200) { $info = json_decode( $info['body'] ); if ( $info ) { $res = $info; } } } return $res; }
それっぽいテキストがでないということは、やはりAPIの取得に失敗しています。
あと、できれば、不具合ページのURLを掲載していただいてよろしいでしょうか。
-
2016年4月7日 9:38 PM #38814
謝花勇武
ゲスト9時25分の投稿通りやってみました
ギャゾ画像
https://gyazo.com/7a6c977818231432d3c9f62cf1dea9b9各記事ページ上部にあるフォローボタンの部分です
https://jahanaisamu.com/okinawa-falling-snow/
すべてのPush7のリンクが表示されません -
2016年4月7日 9:53 PM #38815
わいひら
キーマスターありがとうございます。
やはり、エラーで取得できていないようです。object(WP_Error)#5573 (2) { ["errors"]=> array(1) { ["http_request_failed"]=> array(1) { [0]=> string(146) "SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed" } } ["error_data"]=> array(0) { } }
エラーメッセージで以下のようなものが出ています。
SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed僕は、SSLについては詳しくないのですが、以下の対策などを試してみてください。
SSL通信時発生する証明書エラーとその仕組みを理解する – Qiitaこれを改善出来たら、もう一度試してみてください。
-
2016年4月7日 9:55 PM #38816
謝花勇武
ゲストありがとうございます
確認してみます
感謝 -
2016年4月7日 11:46 PM #38824
まさひこ
ゲスト私もやってみました。謝花勇武さんと同じエラーが出ています。
object(WP_Error)#5279 (2) {
[“errors”]=>
array(1) {
[“http_request_failed”]=>
array(1) {
[0]=>
string(146) “SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed”
}
}
[“error_data”]=>
array(0) {
}
}SSL関連のページを確認してみます。
-
2016年4月8日 1:10 AM #38832
Hidekichi
ゲストWebプッシュ通知サービス「Push7」がWordPressのカテゴリ別配信へ対応
ここみたら、画像にsslの検証を無効化するって内容があるので、プラグインから
パクって引用して、エラーの時はそちらを使うようにすればいいんじゃないですかね?apiの情報がどこにあるのかわかりませんでしたけど、プラグインでできるなら、できるでしょう?ってぐらいの話ですけどね(笑)
-
2016年4月8日 9:38 AM #38850
まさひこ
ゲストHidekichiさんの書き込みがヒントになって解決できました!
sns.phpの情報取得箇所を以下のように変更したところ動作するようになりました。
// $info = wp_remote_get( $url );
$info = wp_remote_get( $url,
array(
‘sslverify’ => false
)
);ありがとうございました。
-
2016年4月11日 3:36 PM #39004
謝花勇武
ゲストまさひこさんの投稿を元にsns.php変更したのですが・・・
で、できない・・・
//Push7情報取得 function fetch_push7_info(){ $res = 0; $app_no = get_push7_follow_app_no(); if ( $app_no ) { $url = 'https://api.push7.jp/api/v1/'.$app_no.'/head'; $info = wp_remote_get( $url, array( ‘sslverify’ => false ) ); if (!is_wp_error( $info ) && $info["response"]["code"] === 200) { $info = json_decode( $info['body'] ); if ( $info ) { $res = $info; } } } return $res; }
-
2016年4月11日 4:05 PM #39005
Hidekichi
ゲストapiからレスポンスはちゃんと返ってきているようなので、単純にリンクが作れていないだけのようです。
どこで設定しているか等をまだ見てないので、夜にでも見てみます。 -
2016年4月11日 5:16 PM #39006
謝花勇武
ゲストHidekichiさん
ありがとうございます。
お力貸してください -
2016年4月11日 9:51 PM #39012
Hidekichi
ゲストちょろっと見てみましたが、sns count cacheは利用されていますか?
もし利用されているようなら、一旦止めて表示してみて下さい。値がちゃんと取れているかどうかは、sns-buttons-balloon.php(バルーンタイプの場合)の156行目あたり、コメントで「push7ボタン」とあるphpブロックの中の
$push7 = fetch_push7_info();
の後に、
echo “"; print_r($push7); echo "
“;
などと入れて$push7の中身をダンプします。
fetch_push7_info()はsns.phpの中で定義されていて、wp_remote_get(アドレス)によってpush7のapiにアクセスしそのレスポンスを受け取る関数です。ブラウザ上では、ここは正しくレスポンスされていました。もし、上記のダンプで値が取れてない、例えばdomain : push7からのアドレス(jahanaisamu.app.push7.jp)が入っていない場合は、sns.phpあたりがオカシイんですけれども、サーバーのレスポンスはされているためjsonの取り出しに問題がありそうです。
ダンプして値が取れているにも関わらず、sns-buttons-balloon.phpにてその値が反映しないとなると、if ( scc_exists() ) {
つまり、sns count cacheの値がtrueになっていてキャッシュを読み込んでいるのではなかろうかと思います。もし利用していない、キャッシュはクリアしたにも関わらず表示しない場合は他に原因がありそうです。その他のキャッシュとか。
ひとまずここらを確認してみて下さい。
-
2016年4月11日 10:15 PM #39014
Hidekichi
ゲストあ、preが…
コードの部分は、echo "<pre>"; print_r($push7); echo "</pre>";
です。
-
この返信は9年、 6ヶ月前に
わいひらが編集しました。理由: コード表示の修正
-
この返信は9年、 6ヶ月前に
-
2016年4月11日 10:16 PM #39015
Hidekichi
ゲストぶ(笑)
echo “[pre]”;
print_r($push7);
echo “[/pre]”;[]は半角〈〉で。
-
2016年4月11日 11:11 PM #39019
謝花勇武
ゲストHidekichi様
いろいろとありがとうございます。
まず「sns count cache」というのはプラグインでしょうか?
上記のプラグインは使用していません。sns-buttons-balloon.phpにて反応するかどうかを確認してみます
下記のギャゾの通りにやってみます
https://gyazo.com/5c2489cd66b702dc5125ea6184d82d7f -
2016年4月11日 11:18 PM #39020
謝花勇武
ゲストコードを位置が間違ってました
?>の後に指定されたコードを書きました
下記の通りに出ました
https://gyazo.com/de1a7da1a0a4f6ff963a6451b251fe57 -
2016年4月11日 11:26 PM #39022
Hidekichi
ゲスト?>の中に書きます。なので最初ので正解です。
何か表示されましたか?
-
2016年4月11日 11:35 PM #39024
謝花勇武
ゲスト?>の中に書き込むと
記事タイトル以降すべてが表示されなくなりました。私の行いが悪いからですか・・・
どうすればよいのでしょうか・・・
-
2016年4月11日 11:37 PM #39025
謝花勇武
ゲスト正確に書くと
記事タイトルは表示されて
更新日時やカテゴリが表示され
それから下は真っ白になりました。 -
2016年4月12日 12:15 AM #39028
Hidekichi
ゲスト※ jsFiddle上でこれを実行しても何も起こりません。
※ ソースを表示するためだけに利用してます。実際自分のサイト(cloud9上)に導入してみましたが特に問題は起きなかったので、原因が特定しきれませんけれども、上記を試して何かしら表示したのであれば設定は間違ってないのではなかろうかと思います。
-
2016年4月12日 12:21 AM #39029
謝花勇武
ゲストご丁寧にありがとうございます
指示通り
sns-buttons-balloon.php
の指定場所にコードを書き込みましたhttps://gyazo.com/fdfab9f8823afc60a84f22fa75c3f49d
現在そのままにしています
-
2016年4月12日 12:23 AM #39030
謝花勇武
ゲスト -
2016年4月12日 1:00 AM #39034
Hidekichi
ゲスト0しか出てこないのはオカシイです。
必要なのはこの中のbodyの部分です。よってsns.phpをちょっと見なおしてみて下さい。
まず今入れた、preの部分を取り除き、sns.phpのpush7該当部分をコピペして、上記の画像のような感じの表示が出るかを確かめて下さい。
謝花勇武さんのサイトはhttpsなので、まさひこさんのようにsslverifyを入れる必要はないかと思うんですが(うちは上記のようにして問題なく取得できています)、もしかしたらサーバー等の仕様によって必要なのかも知れないので念の為コメントアウトしてあります。
何も表示されない場合は、コメントアウトを取り除いてみて下さい。まずこの状態でどういった内容が返ってきているかを確認してみて下さい。
エラーがでていなければ、ブラウザ上にpreのブロックが作られその返ってきた内容が表示されると思います。サンプルでは、もしエラーがない場合にpreの中身が表示されます。ここに何かしらエラーがあれば、responseの部分が200ok以外で返ってくるかと思います。もし200okであればapiからのレスポンスは正しいということになります。if (!is_wp_error( $info ) && $info[“response”][“code”] === 200) {
$info = json_decode( $info[‘body’] );
if ( $info ) {
$res = $info;
}
}この部分ではエラーがないときに、レスポンスはjsonで返ってきてるのでそのbodyから、json_decodeをして$infoに入れてます。これが本来返るはずなんです。その中にアドレスであったりidであったりが含まれています。
-
2016年4月12日 1:28 PM #39052
謝花勇武
ゲストこんにちは
Hidekichi様
お返事ありがとうございます
本当に感謝です上記のコードを追加してアップロードしてみました
追加して編集したテキストがこちらです
ギャゾ
https://gyazo.com/35651358dc7c345e110472c673069662そして結果として出たのが
真っ白になりましたギャゾ
https://gyazo.com/493b7f43fdaf77e68d239a3d57d77caeすべての設定から間違ってるのでしょうか?
何度も何度もすみません -
2016年4月12日 2:13 PM #39056
Hidekichi
ゲストええと、入れるファイルが間違ってます。
sns.phpにecho部分を入れて、何が返ってきているかを見るスクリプトです。
>> まず今入れた、preの部分を取り除き
これは、この前のレスで入れたecho preの部分を指してます。で、sns.phpのpush7部分の該当関数部分(function fetch_push7_info())を探します。追加してあるのは、echo pre〜preint_r〜echo preだけです。一部修正してあるのは、まさひこさん案のsslのベリファイを回避するものですが、まさひこさんのサイトはhttpのサイトで謝花勇武さんのサイトはhttpsなので不要かと思いコメントアウトしています。
上記のサンプルで、sns.phpの該当関数部分の内容を一部書き換え、echoあたりを追記します。
これができたら、僕がレスした画像のようなものが出てくるはずですが、そこらを確認していただきたい感じです。 -
2016年4月12日 2:42 PM #39059
Hidekichi
ゲスト動作説明をしますと、push7のapiにアクセスしているのはsns.phpの「function fetch_push7_info()」こやつです。これがpush7のapiにアクセスして、アドレスやら購読数をjsonで返してきます。
sns-button-balloon.phpはボタンのhtmlです。単純にスピナーがクルクル回っているボタンを表示しています。
apiから返ってきた購読数を書き換えているのはjavascript.jsの部分で、スピナーがクルクル回っている箇所を購読数で書き換えます。← ここは動作している模様?(※)
※動作して0になっているのは、javascript.jsが正しく動作しているという意味です。値が正しいかは別問題です
リンク先となるpush7のアドレスはsns-button-balloon.phpの$push7 = fetch_push7_info();だったかで取得しています。つまりsns.phpのfunction fetch_push7_info();が機能していれば取得できるはずなのです。
function fetch_push7_info();は、apiにアクセスし、その値をjsonで返してきています。wp_remote_getで値が拾えていれば(これは拾えていると思います)、それをjson_decodeで変数に直しています。
$push7 = fetch_push7_info();ですから、変数が$push7には入っており、$push7->domainでアドレスが取得できるはずなのですが…。今回追加したecho部分は、apiから値が取れているかを確認するものです。
表示された値の中の[body]の中に必要なjsonが入っていれば、次に確認するのはデコードできているかです。サンプルの中に、$info = json_decode( $info[‘body’] );という部分があります。
これがデコードしているところですが、この後にecho pre の後のprint_r()に$infoを入れて、どういう値が入っているかを確認します。もしこれがどうもオカシイということになれば、$info = json_decode( $info[‘body’], true );
と書き換えます。そうすると、json_decodeは連想配列に変えますから、それで値にアクセスできるか確認します。それでも何かおかしいという場合はsns-button-ballon.phpの$push7->domain等を、$push7[‘domain’]としたらアクセスできるんじゃなかろうかと。試してないのでわかりませんが(笑)
-
2016年4月12日 3:45 PM #39062
謝花勇武
ゲスト大変申しわけないです
sns.php
に
レス番号39056の
https://jsfiddle.net/70pq42rz/2/
のように変更しました結果は下記の画像です
https://gyazo.com/329386722d7bafb79aceaae62c5cd1a1全文はこちらです
https://gyazo.com/1576a7116cd73f28c466d7329befbd0dエラーですかね・・・
-
2016年4月12日 3:59 PM #39064
Hidekichi
ゲストだったらサンプルのコメントアウトしてあるsslのベリファイを有効にしてみてはどうでしょうか?
-
2016年4月12日 5:49 PM #39069
謝花勇武
ゲスト返信ありがとうございます
早速試してみました
まず変更箇所の画像です
https://gyazo.com/ddb905e07ed5506868f2039dd32b51c4アップロードしてブログ記事で表示された様子です
https://gyazo.com/43b422d4efed0a41441df4675e04ba6eその表示された全文です
https://gyazo.com/5e8c1b5e9d6828e6a0b54c029dc795c7その際きちんとリンク先が設定されていました
徐々に解明されつつあります。
・・・俺はあまりわかっていないんですが・・・笑 -
2016年4月12日 10:10 PM #39075
Hidekichi
ゲストとなると、これでapiのレスポンスは受けられているので、表示されないわけはないんですが、#39059のレスの最後の方に書いたjson_decodeのあたりは試されましたか?
やり方は同様に、echo pre 〜 print_r() 〜 echo /preを今度は$info = json_decode()の後に入れて、print_rのカッコ内を$infoにします。
これでjsonをデコードされている内容を見ます。phpはオンラインマニュアルがきちんとあって、その使い方の例もあるので、どうなって値が拾えるかをこの際覚えて下さい(笑)
このjsonデコードが正しく動作していれば値が拾えないことはないんですが、例えばphpのバージョンやサーバーの仕様でsimplicityの記述では値が取り出せないという場合があるかも知れません。また一部のjsonを正しく吐き出せない時もあります(jsonの書き方の問題等)。
そこで#39059のレスで書いたように、jsonデコードの第2引数にtrueを入れます。そうすると連想配列で返すんです。phpマニュアルへのリンクの例1にある、出力の2つ目ですね。1つ目はオブジェクトで返していますが2つ目はarrayで返してますよね。arrayなんてのはどの言語にもありますから拾えないわけがないって感じの配列です。
このようにしてtrueを入れて配列で返してきているなら、sns-button-balloon.phpのpush7のリンクにある、「->」の部分、例えば$push7->domainなどを配列の$push7[‘domain’]などとして書きなおせば拾えるんじゃなかろうかと思います。
こうする前に$infoの値をダンプしてきちんとapiのレスポンスの「body」がオブジェクトに展開できているかを確認する必要があります。でオカシイと思ったらjson_decode(値,true)として配列で書き出し、それをダンプします。ここが問題なければsns-button-balloon.phpでも値が正しく取れるはずです。
-
2016年4月12日 10:44 PM #39077
謝花勇武
ゲストHidekichi様
本当にありがとうございます
レス39075は英語で書かれてるのですか?笑
まったく意味がわかりません・・・。
ですが頑張ってみます
もう少しお付き合いくださいませ -
2016年4月12日 11:30 PM #39080
謝花勇武
ゲストコードを編集して行ったのですが
なんの変化もありませんでした。
trueも付け加えましたがなんの変化もありませんでした。
https://gyazo.com/b79968ace73ec95272b5ebb92739db13ボタンも「https:///」のままです。
何度も何度もすみません -
2016年4月12日 11:37 PM #39081
Hidekichi
ゲストとなると、json_decode自体が使えないのかも知れないと思えてくるわけですが、サーバーのPHPバージョンはいくつですか?
PHP5.2からしかjson_decodeは使えません。 -
2016年4月12日 11:44 PM #39083
Hidekichi
ゲストちなみに
fetch_push7_info() {
echo “[pre]” . phpversion() . “[/pre]”;
//その他の記述 略
}
※ []は半角〈〉で書き換えて下さい。こう書けば、例えば、5.6とかと表示されるはずです。
-
2016年4月12日 11:59 PM #39084
謝花勇武
ゲストXサーバーで調べてみました
https://gyazo.com/833c6661f24bce7bd32e81b82722836c
PHP5.3.3のようです。
PHP5.6.18にバージョンアップした方がいいですか? -
2016年4月13日 12:16 AM #39086
Hidekichi
ゲストしたほうが良いです。
もしjsonのデコードに失敗しているとすれば、
$error = json_last_error();
echo “[pre]”;
print_r($error);
echo “[/pre]”;を
$info =json_decode();
の後に追記して、どんなエラーかを調べることもできます。 -
2016年4月13日 12:26 AM #39087
謝花勇武
ゲスト解決・・・。
PHP5.6.18
にアップグレードして
すべてのコードを戻したら
すべて正常に動きましたはぁ・・・
なんてこった・・・
こんなにも時間をとらせてしまい申しわけございません
そして心からありがとうございます
何とお礼を申し上げていいのか・・・
本当に本当にありがとうございます
-
2016年4月13日 6:10 PM #39126
-
-
投稿者投稿
- トピック「Push7ボタンのリンク先が空になる」には新しい返信をつけることはできません。