Mac(パソコン)からInstagramに投稿したい〜Safariのユーザーエージェントを固定する設定 defaults write

スポンサーリンク

MacBookからInstagramに投稿したいなぁ

スマートフォンに比べてパソコンのほうが、文章を入力したり、コピーしたり、というのには効率よくすることができます。しかし、ウェブサービスによっては、パソコンとスマートフォンで画面が違う場合があります。今回は、Safariブラウザでスマートフォンと同じように操作する方法を説明します。

スポンサーリンク

スマートフォンかパソコンかでウェブページが変わる

ウェブページは同じ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)を変更しています。

ちなみに、ユーザーエージェント名は、シングルクォートの中にダブルクォートで囲っています。そうしないと、うまく解釈できない(Could not parse)というエラーが表示されてしまいました。

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のバージョン)ので、自分のパソコンで確認してみてください。

こちらもどうぞ

タイトルとURLをコピーしました