Mevy が書き込み規制されたので解除手続き

Restricted from performing write actions

メール
Application notice

Twitter Application Management の Restricted from performing write actions がリンクになっていて、
アプリケーション凍結や他の処分への異議申し立てを行う方法 | Twitterヘルプセンター に飛べます。
そこに書いてあることに従って Twitter APIポリシーサポート | Twitterヘルプセンター に問い合わせ。

> アプリケーションID (https://apps.twitter.com/app/#####から入手可能)
とかしれっと書いてありますがページに記載がないのはどうなの。

> アプリケーションのURL
説明がないのでストアのURLを書いておきました。

> 追加情報として、アプリケーションの主な機能とTwitter APIへの接続仕様をご提出ください。ご質問やコメントの追記も可能です。
未記入でも良さそうですがドキュメントに従って実装した旨を記載。

今年の始め頃にあった書き込み規制についてはこちら。
Twitter クライアントの書き込み規制状況 | 雪猫ノート


カテゴリー: Mevy | タグ: , | コメントする

日本人の辛口レーティング

アプリの評価欄を見ると「一番気に入ったけど極一部が微妙なので辛口評価で★3です」とかよく見ます。
気に入っていると言いつつアプリに低評価を下す。頭おかし 気が狂ってるとしか思えません。
本人はエールのつもりなのかもしれませんが、やってることは開発者に暴力を振るっているだけです。

それに対して海外の方の評価を見ると、great!と感想をコメントに書いてくれていたり
ここを改善してほしいと具体的な要望を書きつつ★5を付けてくれます。

そういえば理由もなしに★1を付ける人も日本人に多いですね。
損害でも被ったならともかく、積極的に★1(悪い)を付ける理由って無い気がします。

少し話が逸れましたが開発者から見たときにどちらが素敵なお客さんかは明白ですよね?
低評価を付けた人の要望を聞きたいと思うでしょうか?

辛口評価をするメリットなんて1つもありません。
開発者のやる気を失せさせ更新が途絶える。あるのはデメリットだけです。

正しい評価をレーティングに反映したいという気持ちがあるのかもしれませんが
気に入るほど評価してるアプリの中で★5つのうち★1つ分も評価を下げるほどのことか今一度考えてほしいです。
正しい評価どころか必要以上に低評価しているように思えます。

改善要望を聞いてもらって自分にとってより使いやすいアプリにしてもらうためにも
今後に期待するのであれば、とりあえず★5を付けましょう!

※当然、すべての人に当てはまるわけではありませんし恣意的に一部を切り取って書いています。悪しからず。


カテゴリー: 雑記 | コメントする

[CoreTweet] アプリ認証でコミックマーケットの当選ツイートを取得する

Application-only 認証 を使ってコミックマーケットの当選ツイートを取得する。
Application-only 認証 だと使える API に制限はありますが AccessToken / AccessTokenSecret が要りません。
(当然ユーザー固有の情報は取得できない。)

コードは大体 App only 認証の使い方 · CoreTweet/CoreTweet Wiki · GitHub の通りです。
yield で1ツイートずつ返すので foreach (var status in twitterSearch.Search()) で呼べばOK。

日本語検索は1文字ずつツイートに含まれるか判定されるので q の指定が若干特殊です。
-RTでリツイートを除いています。

class TwitterSearch
{
    private const string ConsumerKey = "";
    private const string ConsumerSecret = "";
 
    private long? MaxId { get; set; } = null;
 
    public IEnumerable<Status> Search()
    {
        var apponly = OAuth2.GetToken(ConsumerKey, ConsumerSecret);
        var c = 0;
        do
        {
            var statuses = apponly.Search.Tweets(q => "貴サークル「」は、に配置されました -RT", max_id => this.MaxId, count => 100);
            foreach (var status in statuses)
            {
                yield return status;
                this.MaxId = status.Id - 1;
            }
            c = statuses.Count;
        } while (c > 0);
    }
}

取得した結果をCSVで下記に置いてますので使いたい方はどうぞ。
SnowCait/ComiketTweets: コミックマーケットの当落ツイート


カテゴリー: C# | タグ: | コメントする

[UWP] 消してしまった StoreKey.pfx を復旧する

[アプリ名]_StoreKey.pfx を消してしまった場合に復旧する方法。
(以降 [アプリ名]_ は省略、TemporaryKey.pfx も同様。)

TemporaryKey.pfx がある場合

[プロジェクト] [ストア] [アプリケーションをストアと関連付ける] から関連付けを行うと StoreKey.pfx が作成されます。
アプリケーションをストアと関連付ける

TemporaryKey.pfx もない場合

TemporaryKey.pfx がないと関連付けを行っても StoreKey.pfx が作成されません。
Package.appxmanifest [パッケージ化] [証明書の選択] から
[テスト証明書の作成] を選んでテスト証明書 (TemporaryKey.pfx) を作成します。
パスワードは空欄のままで構いません。
テスト証明書の作成
後は前述と同様にストアとの関連付けを行うと StoreKey.pfx が作成されます。


カテゴリー: UWP | タグ: | コメントする

[PHP] 人にやさしい JSON を出力する

json_encode を普通に実行するとホワイトスペースのない1行の文字列で出力されます。
これでは長くなったときに人間は読めません。整形するのにひと手間が必要です。

json_encode の第2引数に JSON_PRETTY_PRINT を渡してあげるとこの手間をなくすことができます。
PHP 5.4 以降でしか使えないので PHP 5.3 以下では 128 を指定すると良いようです。

<?php
$ary = ["a" => 1, "b", "c" => [2, 3]];
echo json_encode($ary);
echo PHP_EOL;
echo json_encode($ary, JSON_PRETTY_PRINT);
{"a":1,"0":"b","c":[2,3]}
{
    "a": 1,
    "0": "b",
    "c": [
        2,
        3
    ]
}

カテゴリー: PHP | タグ: | コメントする