koogawa blog

iOS、Android、foursquareに関する話題

2017/8/22 から Foursquare API の Rate Limits ルールが変わったよ

TL;DR

  • 2017/8/22 までに開発者アカウントを認証しない場合、1日に呼び出せるAPIの回数が 1,000 回に制限される
  • 開発者アカウントを認証すればこの回数が 100,000 回に増える
  • ログイン不要の userless requests は対象外(呼び出せる回数に変更なし)

認証は https://ja.foursquare.com/developers/verify から行える。(クレジットカードが必要。課金されることはないとのことだが自己責任で)

はじめに

今年の6月に foursquare asia を名乗るアカウントから「Foursquareの開発者のアカウントを認証してください」というメールが届きました。

f:id:koogawa:20170824001835p:plain

・ ・ ・

なんだか日本語があやしい🤔

さらに、クレジットカードの登録も必要になるとのことなので、しばらく様子を見ることにしました。

アプリが機能しなくなる

8/23 の夜、Foursquare API を利用している私のアプリが動いていないことに気付きます。

「あのメールは本物だったのか…!」

慌てて API のレスポンスを調べてみると

HTTP/1.1 429 Too Many Requests
X-Cache-Hits:
0
Tracer-Time:
2
Content-Length:
134
X-RateLimit-Limit:
0
X-RateLimit-Remaining:
0

が返ってきていました。どうやら、1日1,000リクエストの制限に達してしまったようです。

ちなみに、1,000リクエストというのは、ユーザ一1人あたりのリミットではなく、アプリ全体のリミットです。例えば100人ユーザーがいるアプリの場合、ひとり1日10回しかAPIを呼び出せない計算になります。(これはキツイ)

あらためて公式ドキュメントを見てみると、

On August 22, 2017, if you have not verified your account, all of your existing apps will be subject to a call quota of 1,000 calls per day. You will still be able to verify your account at any time to receive 100,000 calls per day for one primary app.

の行がいつの間にか追記されていました。昨日ぐらいからこのルールが適用されたようですね。(CHANGELOGには無かったぞ!)

ちなみに、ログイン不要で使える userless requests は対象外のようです。つまり、

https://api.foursquare.com/v2/venues/search?ll=40.7,-74&
client_id=CLIENT_ID&client_secret=CLIENT_SECRET&v=YYYYMMDD

のように、oauth_token を使わずに API を利用しているアプリは何の影響もありません。

開発者アカウントを認証してみる

取り急ぎ、クレジットカードを登録して開発者アカウントを認証してみました。

Rate Limits を読む限り、次のリセット時刻(midnight UTC と書かれている)が来るまで制限は解除されないようなので、ひたすら待ちたいと思います。

アプリ利用者の皆様にはご迷惑をお掛けいたしますが、復旧まで今しばらくお待ちいただけますようお願いいたします。

2017.8.24 9:00:制限が解除されました!

【StackOverflow活動日記】ブログのサイドメニューにバナーを貼ってみた

自分のウェブサイトに Stack Overflow のプロフィールバナーを貼れることを知ったので、やり方をメモしておきます。

  1. Stack Overflow を開く
  2. ヘッダーの右にある自分のアイコンをクリック
  3. 画面上部にある「Edit Profile & Settings」をクリック
  4. 左メニューにある「Flair」をクリック
  5. 画面の下の方にある「How do I use it?」の HTML をコピーして自分のウェブサイトにペースト

これだけです!

テーマも4種類ほど用意されているようですね。

f:id:koogawa:20170818141123p:plain

「Hotdog」は見た目も強烈で目立ちそうですが、使い所が難しそうです🌶

【StackOverflow活動日記】WKWebView reload() がページをリフレッシュしてくれない件

完全に思いつきだけど、Stackoverflow活動 のログをなるべく残していきたいと思う。

Stackoverflow で何か回答してみたいけど、どんな風に回答したらよいかわからない人の参考になれば幸いである。

今回解決した質問はこちら。

stackoverflow.com

the first time load web page fail at offline. then I connect network call reload() to refresh current page, but it is not work, the WKNavigationDelegate can't get any callback.

初回ロード時にオフラインで失敗した場合、再びオンラインになった際に reload() を呼んでもページをリフレッシュしてくれないよ!という内容。

実際にコードを書いて試したところ、確かに reload() 呼んでもウンともスンとも言わない。

調べてみると、WKWebViewurl プロパティ(現在表示しているページのURLがセットされる)には初回ロード時に失敗すると nil がセットされることがわかった。

reload() メソッドはこのURLを再読み込みしようとするため、何度実行してもリフレッシュされなかったわけだ。この仕様は今まで知らなかったので勉強になった。

というわけで、ページをリフレッシュする際は url プロパティをチェックするといいよ、といった内容をサンプルコード付きで回答した。

後日、私の回答が承認され、reputation は 2350 になった。

f:id:koogawa:20170818135040p:plain

この調子で 2500 目指すぞ💪

StackOverflow、昨年リリースした Documentation の投稿受付を終了

去年リリースされた StackOverflow の Documentation というサービスを覚えているでしょうか?

www.publickey1.jp

上記の紹介記事も300以上ブックマークされていることから、日本でも一部では注目されていたのではないでしょうか。

その Documentation ですが、静かにその役目を終えようとしています。

meta.stackoverflow.com

文中では

We still think Stack Overflow Documentation is a good idea.

「我々は今もなお Documentation は良いアイデアだと思っている」という考えは強調しつつも

By May, it was clear we weren't on the right path. New users weren't coming to Documentation. So we went back to the drawing board and started another round of user interviews focused on Transact SQL. We brought on a user experience researcher to help us interview technical writers. The results were encouraging in the sense that we know a lot more about what makes for great documentation and how we might support that effort.

以前から新しいユーザー集めに苦戦していたことは認めており、それを解決するために色々と試行錯誤を重ねていたようです。

But it was also clear fixing Documentation would require a significantly larger team.

しかし、すべてを解決するためには莫大なリソースが必要になることもよくわかっていたようです。

今後

投稿されたコンテンツの扱いについては、今後ユーザーと議論しながら決めていくようです。最低限、テキストのアーカイブは提供されるとのことです。

Documentation によって獲得した reputation やバッジの取扱についても詳しく書かれているので、気になる方は読んでみると良いでしょう。

iOS 11にアップデートしたら「○○が位置情報を利用中」という青いバーが常に表示されるようになった場合の対処法

iOS 11にアップデートした直後、次のような「○○が位置情報を利用中」という青いバーが常に表示されるようになった場合の対処法です。

f:id:koogawa:20170618224214p:plainNDA期間中につき、スクリーンショットiOS 10のものを使用しています

1. どのアプリが青いバーを表示しているか確認

「○○が位置情報を利用中」の○○の部分がこの青いバーを表示しているアプリの正体です。上記の例だと、Google Maps がそれにあたります。

2. 位置情報の利用設定を変更

設定アプリを起動します。

f:id:koogawa:20170618224703p:plainNDA期間中につき、スクリーンショットiOS 10のものを使用しています

プライバシー>位置情報サービス>アプリ名

の順にタップします。

f:id:koogawa:20170618230330p:plainNDA期間中につき、スクリーンショットiOS 10のものを使用しています

「常に許可」以外 を選択することで青いバーは表示されなくなります。

注意

「このAppの使用中のみ許可」を選択した場合、当然そのアプリは起動している間しか位置情報を利用できなくなります。アプリによっては起動中以外も位置情報を取得し続けることが前提で作られているものもあります。その場合はアプリが正常に動かなくなる可能性もあるのでご注意下さい。(自己責任でお願いします)

なぜ青いバーが出るようになったのか?

技術的な理由を知りたい方は下記エントリをご覧ください。

qiita.com

【iOS 11】#WWDC17 What's New in MapKit メモ

developer.apple.com

【iOS 11】#WWDC17 What's New in Location Technologies メモ

developer.apple.com