

MacBookからInstagramに投稿したいなぁ
スマートフォンに比べてパソコンのほうが、文章を入力したり、コピーしたり、というのには効率よくすることができます。しかし、ウェブサービスによっては、パソコンとスマートフォンで画面が違う場合があります。今回は、Safariブラウザでスマートフォンと同じように操作する方法を説明します。
Instagramのアップデートで、PCからも投稿できるようになりました。
スマートフォンかパソコンかでウェブページが変わる
ウェブページは同じURLアドレスでも、画面の大きさやデバイスの種類(パソコンかスマートフォンか?、どの機種か?)によって違う画面が表示されます。


このことを「レスポンシブ・デザイン(応答するデザイン)」と言います
ウェブページは「レスポンシブ・デザイン」にするために、機種ごとの切り替える表示の仕方を、プログラムやスタイルシートで記述しています。
パソコンからはインスタグラムに投稿できない?
「レスポンシブ・デザイン」を採用している多くのウェブページでは、文字や画像の大きさ、レイアウトが変わるだけですが、ボタンや機能も違ってくる場合があります。
その代表的なサイトに、「インスタグラム(Instagram)」があります。
Instagramは「スマートフォンで写真を投稿する」というスタイルを重視していて、パソコンの画面からは閲覧することはできますが、写真の投稿はできません。




実は以前はパソコンからも投稿できたんですよね……
あえて、パソコンからの投稿を排除することで、ほかのSNSとの違い・特色を出しているようです
ウェブページを「騙す」?
ウェブページはどのようにスマホやパソコンといった機種の区別、つまりデバイスを認識しているのでしょう。
インターネット・ブラウザは、ページを閲覧するときに、自分の大まかな機種を相手に伝える仕組みがあります。機種によって、ページの表示が崩れたりするのを防ぐためです。
自分の大まかな機種のことを「ユーザーエージェント」といいます。
これは、OSとブラウザの種類のペアになっていることが多く、例えば、「Windows 10のEdge」とか、「iPhoneのSafari」とか、「Windows 7のGoogle Chrome」のような情報をウェブページに送信して、ページ情報を受け取ります。
このユーザーエージェントは、ブラウザの自己申告なので、変更することができます。
Safariの場合は、メニューの中の「開発」ー「ユーザーエージェント」をクリックすると、ユーザーエージェントの候補が出てきます。例えば、「Safari – iOS 13.1.3 – iPhone」なら、iPhoneの表示になりますし、Microsoft EdgeならWindowsパソコンの表示になります。


このユーザーエージェントをiPhoneに変更すれば、パソコンからでもインスタグラムに投稿できます。
毎回ユーザーエージェントが戻ってしまう


とりあえず、パソコンで投稿できたけど、毎回選択するのは面倒だなぁ……
この「ユーザーエージェント」ですが、Safariを起動し直すと「デフォルト」に戻ってしまいます。
ということで、設定を変更してみましょう。
defaults write com.apple.Safari CustomUserAgent '"Mozilla/5.0 (iPhone; CPU iPhone OS 13_1_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.1 Mobile/15E148 Safari/604.1"'


このようにターミナルでコマンドを入力することで、設定を書き換えることができました。
コマンド構文を見てみましょう
defaults write com.apple.Safari CustomUserAgent 'ユーザーエージェントの正式名'
Safariのデフォルト設定(defaults)の書き込み(write)ということで、ユーザーエージェント(CustomUserAgent)を変更しています。
defaults Could not parse
Try single-quoting it.




エラーは「シングルクォートに入れてみなさい」という意味でしたが、すでに入っています。そこで、ダブルクォートで囲みました。
空白文字やスラッシュやドットが入っているからでしょうか?(要検討)
ユーザーエージェントの正式な名前を調べるには
さて、ユーザーエージェントは選ぶのではなく、コマンドに入力するので、適当な名前ではダメです。
どうやって正式な名前を探すかというと、Safariアプリのデータの中にリストがあります。
/Applications/Safari.app/Contents/Resources/UserAgents.plist
表示してみるとXML形式でリストになっています。ローカルのファイルですが、ブラウザからもアクセスできます。
/Applications/Safari.app/Contents/Resources/UserAgents.plist (macでなければ接続エラーになります)


一つ抜粋してみます。
<dict>
<key>browser-name</key>
<string>Safari</string>
<key>browser-version</key>
<string>13.0.1</string>
<key>hardware</key>
<string>iPhone</string>
<key>hide-browser-version</key>
<true/>
<key>platform</key>
<string>iOS</string>
<key>platform-version</key>
<string>13.1.3</string>
<key>user-agent</key>
<string>Mozilla/5.0 (iPhone; CPU iPhone OS 13_1_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.1 Mobile/15E148 Safari/604.1</string>
</dict>
この中のキー「user-agent」の文字列(String)「Mozilla/5.0 (iPhone; CPU iPhone OS 13_1_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.1 Mobile/15E148 Safari/604.1
」がユーザーエージェント名ということになるわけです(これはiPhoneです)。
また、Microsoft Edgeなら「Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299
」でした。


細かい数字は使っているMacのバージョンによって違う(正確にはSafariのバージョン)ので、自分のパソコンで確認してみてください。