[Tips] 投稿時画像付き自動SNSアップ(Mastdon版)(WordPress)

Twitter用の投稿時自動ツイートを実施(コチラ)しましたが、今回はMastodon用の投稿時自動トゥートを作ってみました。
Pixivが運営するMastodonサービス「Pawoo」に投稿する仕組みを入れてみました。

参考にさせていただいたサイトはこちらです。

上記サイトで、Mastodonへの基本的な動作が書かれています。
というか、ほぼこれがすべてです。

これを元に、前回のTwitter版をベースに作成しました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
//公開時にトゥート
function tootImage($new_status, $old_status, $post){
    require_once TEMPLATEPATH.'/func_mastodon/autoload.php';
    $t = new \theCodingCompany\Mastodon();
  //ステータスが「publish」(公開)になったとき。$new_statusだけの判定だと更新ボタンを押しただけでツイートされてしまうので「publishじゃない記事」が「publishになったとき」にツイートするようにしている
    if($new_status == 'publish' && $old_status != 'publish'){

    //ツイートするテキスト(字数は定型文やハッシュタグを使う場合は適宜調整が必要)
    //ここでは「ブログ書きました:記事タイトル... URL #カテゴリ名」というフォーマットにしています
   
        //カテゴリ名取得
        //カテゴリ名をハッシュタグにしている
        //$cat = get_the_category($post[0]->ID);
        //タグ名取得に変更
        $cat = get_the_tags($post->ID);
        error_log(print_r($cat, TRUE));
        $cat_text = '';
        foreach($cat as $val){
            $cat_text .= '#' . $val->name . PHP_EOL;
        }
        error_log(print_r($cat_text, TRUE));
        if(strpos($cat_text,'R18') !== false){
            $sensitive = 1;
        }else{
            $sensitive = 0;
        }

        //アイキャッチ取得
        //$file = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'thumbnail' );
        $file = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'thumbnail' );
        $fullsize_path = get_attached_file( get_post_thumbnail_id($post->ID) );
        //error_log(print_r($file, TRUE));
       
        // サムネイル画像の取得パスがURLのみのため変換
        $file = str_replace( "https://www.a-legend.net/" , "/var/www/html/" , $file);

        //error_log(print_r($file, TRUE));

        //アイキャッチがなかったらダミー画像を入れとく
        //ない場合は画像添付なしでツイートするとか、カテゴリによってダミー画像を切り分けるなど一考の余地がある
        if($file){
            $file = $file[0];
        } else {
            $file = '/var/www/html/images/logo_500x500.png';
        }

        $image = file_get_contents( $file );
        $imagesize = getimagesize( $file );
        $upload_image = base64_encode($image);

        // 2枚目画像(ランダム選択)
        $input = array(
               '/var/www/html/images/blog-upload-01.jpg',
               '/var/www/html/images/blog-upload-02.jpg',
               '/var/www/html/images/blog-upload-03.jpg',
               '/var/www/html/images/blog-upload-04.jpg',
            );
        $rand_keys = array_rand($input);
        $file2 = $input[$rand_keys];

        $image2 = file_get_contents( $file2 );
        $imagesize2 = getimagesize( $file2 );
        $upload_image2 = base64_encode($image2);

        // 画像アップロード
        $media_ids = array();

        $response = $t->PostMedia( $file );
        $media_ids[] = $response['id'];
        $response = $t->PostMedia( $file2 );
        $media_ids[] = $response['id'];

        //error_log(print_r($response, TRUE));

        //文字数計算(140-「ブログ書きました:」 - 「...」- ハッシュタグ文字数 - 短縮URLの文字数(半角23文字))
        //だが、念のため130文字で収まるようにしている
        //$count = 130-mb_strlen('ブログ更新しました:')-mb_strlen($cat_text)-23;
        $count = 260-mb_strlen('ブログ更新しました:')-mb_strlen($cat_text);

        $update_toot = mb_strimwidth('ブログ更新しました:' . $post->post_title . PHP_EOL .'投稿日:'.mysql2date('Y.n.j', $post->post_date), 0, $count, "...") . PHP_EOL . $cat_text . get_permalink($post->ID);

        $statusses = $t->PostStatuses($update_toot,'public',$media_ids,$sensitive);
        //var_dump($statusses);
        error_log(print_r($statusses, TRUE));

    }

}
//アクションフック
//transition_post_statusは記事のステータス(公開や下書きなど)が変わった時に発動します
add_action('transition_post_status', 'tootImage',11,3);



  • x
  • pixiv
  • pixivFANBOX
  • skeb
  • amazon
  • booth
  • nijie
  • pixivSKETCH
  • Patreon
  • YouTube

関連記事

  1. READ MORE

    [Tips] iTunesでiPhoneのデバイスが...

    2019-09-24

  2. READ MORE

    [Tips] ジャンクション機能を使ったフォルダのマ...

    2014-04-12

  3. READ MORE

    [Tips] プラグイン『TwitterDigest...

    2016-09-14

  4. READ MORE

    [Tips] 管理画面の投稿一覧に(サムネイル)ア...

    2018-03-06

コメントをお待ちしております。

コメント

CALENDAR

2024年2月
 123
45678910
11121314151617
18192021222324
2526272829  

RECOMMEND POST

  1.    

    READ MORE

    [漫画] 鋼の錬金術師 第24巻(荒川弘)

    投稿日:2018-10-29

    作品名:鋼の錬金術師
    巻数 :第24巻
    作家名:荒川弘
    出版社:スクウェア・エニックス (2009/12/22)

ADVERTISEMENT

ARCHIVE

THE WORK

GALLERY

  1. READ MORE

    更新日:2022-02-06

    オープンエロなお姉さんとお節介焼きのエルフ少女、彼女たちに振り回されるラッキースケベ魔法使い男がいます。

  2. READ MORE

    更新日:2022-01-11

    40代主婦と10代JKの母娘が近所の冴えない青年に寝取られて、楽しいS●Xライフを送る毎日

  3. READ MORE

    更新日:2021-12-14

    エルフ族・竜族・猫族の3人美人義姉妹が教会のシスターとしておりなすお悩み解決エロファンタジー

  4. READ MORE

    更新日:2020-07-13

    arohaJ様のpixiv内企画「pixivファンタジア」に参加した際のイラストです。

  5. READ MORE

    更新日:2023-12-11

    pixivの企画参加絵や取り留めなく書いた落書き、まだグループとして外出しできないようなモノを入れています。まぁ一言で言えばなんだかよく分からないということです

  6. READ MORE

    UPDATE!!FANART

    更新日:2024-02-21

    お気に入り:『ワンピース』『NARUTO』『BLEACH』『鋼の錬金術師』『ダイの大冒険』『生徒会役員共』

  7. READ MORE

    更新日:2023-03-05

    pixivやtwitterなんかでお知り合いになった絵師さんのお子さんを描かせていただきました。

  8. READ MORE

    更新日:2022-05-02

    たまにお出掛けしたときに撮った写真やマイ猫の記録写真などです。

ページ上部へ戻る