Support » Plugin: Gianism » Twitterボット機能について

  • Resolved scanner0928

    (@scanner0928)


    こんにちは。
    有用なプラグインを開発いただき、感謝しております。
    早速ながら、プラグインにある表題の機能を使いたいと思ったところ動作しませんでしたので、
    こちらにてお知恵をいただければと思っております。

    一般設定 → 有効

    Twitter

    Twitterと接続 → 有効
    API Key周りも設定しております。

    念のため、heteml, GMO, の2サーバーで試してみましたが、
    どちらも動作しませんでした。

    上記以外に何か設定、調整する箇所はありますでしょうか。
    是非実現したく思っておりますので、ご教示いただきましたら幸いです。
    よろしくお願い致します。

    https://wordpress.org/plugins/gianism/

Viewing 15 replies - 1 through 15 (of 15 total)
  • Plugin Author Takahashi Fumiki

    (@takahashi_fumiki)

    考えられる点としては……

    – スケジュールは設定済みでしょうか?
    – 終了日は指定していますか?
    – twitterでのログインはできていますか?

    もし可能であれば、次の手順を試してみてください。

    サーバにターミナルでログイン
    WordPressのインストールフォルダに移動する
    PHPをコマンドラインから起動する
    wp-load.phpを読み込み、WordPressを有効にする
    update_twitter_statusを実行し、twitterにつぶやけるかを確認。

    ssh example.com
    cd /path/to/your/wp
    php -a
    php > include 'wp-load.php';
    php > update_twitter_status('This is a test.');

    これで呟くことができれば設定は問題ないはずです。

    https://dl.dropboxusercontent.com/u/569741/voila.png

    あとは、Cronがきちんと動いているかとか、そういう点ですかね。

    Thread Starter scanner0928

    (@scanner0928)

    わざわざのご返信、本当にありがとうございます。

    スケジュール(ボックス・チェック済)、終了日(2019-11-11)ともに設定しております。
    ログイン画面から、twitterでのログインができ、
    ユーザー画面に「あなたのアカウントはすでにtwitterアカウントに接続されています。」
    とあります。

    スクリーン名は、twitterのログイン名と同じ(デフォルトです)
    つぶやき内容は「こんにちは!」としています。

    twitterの方は、
    Name, Descriptionは、任意のもの。
    Access Level Read, write, and direct messages としています。
    Allow this application to be used to Sign in with Twitter
    は、未チェックにしています。

    ターミナルは権限がないので、難しいのですが、
    これから試行錯誤してみます。

    エラーログなどが出れば良いのですが、
    configに設定しても書き出されておらず、やはりサーバーの問題なのかなと思っております。
    またお時間がありましたら、ご教示くださいますよう、よろしくお願い致します。

    Thread Starter scanner0928

    (@scanner0928)

    ご無沙汰しております。
    あれからいろいろ試行錯誤し、ようやく動作が実現しましたのでご報告致します。
    (確認も含んでしまいますがお許し下さい)

    まず今回の私のミスとして2点ありました。

    1.
    twitterアカウントでログインし、そのアカウントでログインして投稿すべきところを、
    サイト管理者のままでボット投稿をしてしまった。
    (アプリ連携の設定さえ正常なら、adminで何でもできると思っていました)

    2.
    投稿内容を、テストがてらと思い、定型文にしてしまったため、
    1度だけのツイートとなった。
    (twitterでは同じ文章の連続は2回目以降10ツイート過ぎるまでスルーするようです)

    確認点として1の、ボット投稿するユーザーは、
    「twitterログインし、またそのAUTHコードでアプリ連携したユーザー」
    という認識でよろしいでしょうか。

    お時間がありましたらご教示ください。
    以上、素晴らしいプラグイン、本当にありがとうございました。

    Thread Starter scanner0928

    (@scanner0928)

    あけましておめでとうございます。
    昨年末に動作したと報告致しましたが、問題が出てきました。

    まずは5ツイートほどは正常動作をしておりましたが、その後はbotしなくなりました。
    Application Managementで、Consumer Key (API Key)とAccess Tokenを再発行し、
    再度設定すれば、数ツイートはしますが、また停止します。

    ツイート内容は重複しないようにしておりますが、
    何か連携等が切れるような可能性はありますでしょうか。

    よろしくお願い致します。

    Plugin Author Takahashi Fumiki

    (@takahashi_fumiki)

    うーん、連携が切れるというのは、まだ経験がないですね。基本的にアプリの連携を行った時点のアカウント認証除法が使われるはずなので。ちょっと見直してみます。

    それでは、ことしもよろしくおねがいします。

    Thread Starter scanner0928

    (@scanner0928)

    ありがとうございます。
    私の方もいろいろ検証してみます。

    是非是非、利用させていただきたい機能でございますので、
    お時間のある範囲で、何卒ご指導等よろしくお願い致します。

    Thread Starter scanner0928

    (@scanner0928)

    お世話になっております。
    本日、突然botにより1ツイートされました。
    内容が最終ツイートと同じものであり、かつ10日後ということで、
    ツイート内容が同じなため、botされなかった可能性があります。

    ショートコードでツイートさせているのですが、

    add_shortcode('gm_wordlist', function($atts = array()){
    	global $post;
    	$rand_posts = get_posts('posts_per_page=1&orderby=rand');
    	foreach($rand_posts as $post) {
    	setup_postdata($post);
    	return get_field('A').' -【'.get_field('B')."】\n".get_the_title().' -【'.get_field('C').'】';
    }
    });

    とし、固定ページでショートコードを本文中に書くと、
    きちんとランダムにreturnされています。
    botだと、ランダムが効かなくなるということは考えられますでしょうか。

    以上、まずは報告まで。
    お時間がありましたら、アドバイスよろしくお願い致します。

    Plugin Author Takahashi Fumiki

    (@takahashi_fumiki)

    add_shortcode('gm_wordlist', function($atts = array()){
    	global $post;
    	$rand_posts = get_posts('posts_per_page=1&orderby=rand');
    	foreach($rand_posts as $post) {
    		setup_postdata($post);
    		return get_field('A').' -【'.get_field('B')."】\n".get_the_title().' -【'.get_field('C').'】';
    	}
    });

    この書き方だと、global $postが常にあるかどうか保証されていないので、ランダムに取れないんではないでしょうか。

    以前書いていた

    > まずは5ツイートほどは正常動作をしておりましたが、その後はbotしなくなりました。

    という件ですが、こちらはうまくランダムになっていたのですか?
    もしそうでなかったら、ランダムの部分のロジックを変えた方がいいと思います。

    Plugin Author Takahashi Fumiki

    (@takahashi_fumiki)

    回答忘れていました。

    確認点として1の、ボット投稿するユーザーは、
    「twitterログインし、またそのAUTHコードでアプリ連携したユーザー」
    という認識でよろしいでしょうか。

    そうです。ボット連携したときのアカウントでつぶやきます。
    ボット投稿を作成したときにtwitterにログインしているアカウントとは関係ありません。
    ※ 管理画面に「XXとしてつぶやきます」とか出すようにしていたと思います。

    Thread Starter scanner0928

    (@scanner0928)

    この書き方だと、global $postが常にあるかどうか保証されていないので、ランダムに取れないんではないでしょうか。

    なるほど。
    投稿済みの記事(カスタム投稿など)を取ってきてbot機能で使えるようにするにはどうすればよろしいでしょうか。
    記事取得方法だけでもお教えいただければ幸いです。

    以前書いていた

    > まずは5ツイートほどは正常動作をしておりましたが、その後はbotしなくなりました。

    という件ですが、こちらはうまくランダムになっていたのですか?
    もしそうでなかったら、ランダムの部分のロジックを変えた方がいいと思います。

    最初の1日は5,6ツイートほど、うまくランダムになっておりました。

    そうです。ボット連携したときのアカウントでつぶやきます。
    ボット投稿を作成したときにtwitterにログインしているアカウントとは関係ありません。
    ※ 管理画面に「XXとしてつぶやきます」とか出すようにしていたと思います。

    承知しました。
    wordpressでアプリ連携さえしていれば、
    bot投稿(作成?)ユーザーは誰でも良いということですね。

    いろいろお手数をおかけしております。
    よろしくお願い致します。

    Plugin Author Takahashi Fumiki

    (@takahashi_fumiki)

    > 記事取得方法だけでもお教えいただければ幸いです。

    global $post;
    $rand_posts = get_posts('posts_per_page=1&orderby=rand');
    foreach($rand_posts as $post) {
    	setup_postdata($post);
    	return get_field('A').' -【'.get_field('B')."】\n".get_the_title().' -【'.get_field('C').'】';
    }
    

    これを

    $query = new WP_Query(array(
        'posts_per_page' = 1,
        'orderby'  => 'rand'
    ));
    $return = '';
    if( $query->have_posts() ){
        while( $query->have_posts() ){
            $query->the_posts();
            $return = get_field('A').' -【'.get_field('B')."】\n".get_the_title().' -【'.get_field('C').'】';
        }
        wp_reset_postdata();
    }
    return $return;
    

    ですかね。

    Thread Starter scanner0928

    (@scanner0928)

    ご無沙汰しております。
    アドバイスいただいたコードを試しながら、いろいろ改変しましたら、
    まずは動作致しましたので、ここに報告致します。

    add_shortcode('gm_wordlist', function($atts = array()){
    
    $args = array(
        'posts_per_page' => 1,
    	'orderby' => 'rand',
    );
    $the_query = new WP_Query( $args );
        if ( $the_query->have_posts() ) :
            while ( $the_query->have_posts() ) : $the_query->the_post();
        return get_field('m_thai').' -【'.get_field('p_thai')."】\n".get_the_title().' -【'.get_field('kana')."】\n\nhttp://www.phaasaa-thai.com\n#タイ語 #phaasaathai";
        endwhile;
    else:
        echo '本日はお休みです';
    endif;
    
    });

    のようにすると、10回ほどツイートできました。
    ただその後はツイートが止みます。
    また記事を追加すると、ツイートが始まります。
    恐らく、ランダムで取ってくるあたりが機能しておらず、
    一定の法則で記事を取得→ツイートされているのでは?と推測しております。

    また何か進捗がありましたら報告致します。
    ありがとうございました。

    Plugin Author Takahashi Fumiki

    (@takahashi_fumiki)

    https://wordpress.org/support/topic/wp_query-orderby-random-not-working?replies=17

    上のフォーラムだと、サーバの設定やプラグインによってorderby=’rand’ができないことがあるようです。

    – Post Types Order pluginというプラグインを利用している
    – WP EngineというPaasを使っている

    他の理由かもしれませんが、ご参考までに。

    Thread Starter scanner0928

    (@scanner0928)

    高橋様

    直々にアドバイスいただき、いつもありがとうございます。
    教えていただいた情報を参考にします。

    まずは御礼まで。
    ありがとうございました。

    Plugin Author Takahashi Fumiki

    (@takahashi_fumiki)

    解決済み。

Viewing 15 replies - 1 through 15 (of 15 total)
  • The topic ‘Twitterボット機能について’ is closed to new replies.