ノラプログラマーの技術メモ

ネットで調べても出てこなかった情報を載せていきたい技術系ブログ。

楽天RMS 受注APIサービスをPHPで利用するサンプルを書いてみた

概要

先月はYahoo!ショッピングのプロフェッショナル出店ストア向けAPIを利用したPHPサンプルを書いてみたのだが、楽天でも同じような機能を作ろうと思ったのが始まり。

楽天RMSのWEB APIサービスを利用するには、管理画面にログイン後、「拡張サービス一覧」から「WEB APIサービス」のリンクをクリックする。ちなみに無料で利用できる。

一応、ドキュメントが用意されているものの、情報が古い上にJavaで開発することが前提になっている。(もしかして楽天APIに需要がないのか?)

PHPソースコードがないかとネットを探してみるも、「楽天カスタマーサポートからPHPのサンプルをもらってね」と書かれているものが多数…。

仕方ないから自分で開発することにしたのであった。

前提

楽天RMSのドキュメントを読むと、受注API・決済API・在庫APISOAP呼び出し、その他APIはREST(POST/GET)呼び出しと書かれている。

f:id:kawai_norimitsu:20171123200130j:plain

今回は受注API(OrderAPI)を利用するので、SOAP呼び出しを使う。

楽天RMS APIを利用するには、まず最初に「申込、利用規約確認」から申込みする。次に「利用設定」から利用APIを選択する。

PHP言語を使って、サーバーサイドアプリケーションを開発する。

初期設定

楽天RMSAPI管理画面から、次の設定を確認しておく。

(1)サービスシークレット
(2)ライセンスキー
(3)受注API - order.getOrderが利用可能である

f:id:kawai_norimitsu:20171123202144j:plain

利用したいAPIの使用を許可しておかないと、エラーになるので注意。

サンプルプログラム

ライブラリ等を使わず、必要最低限な機能を一番シンプルなPHPで書くことにする。

サービスシークレットやライセンスキーは適宜、ご自身の文字列に書き換えること。

<?php

  // ------------------------------------------------ 初期設定
  $serviceSecret = "<ここにあなたのサービスシークレット>";		// サービスシークレット(1)
  $licenseKey = "<ここにあなたのライセンスキー>";				// ライセンスキー(2)
  $shop_url = "<ここにあなたのストアアカウント>";				// ストアアカウント

  // ------------------------------------------------ 受注情報を取得
  $authkey = "ESA " . base64_encode($serviceSecret . ':' . $licenseKey);
  $post_xml = "<?xml version='1.0' encoding='UTF-8'?>
  <SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' xmlns:ns1='http://orderapi.rms.rakuten.co.jp/rms/mall/order/api/ws'>
  <SOAP-ENV:Body>
  <ns1:getOrder>
  <arg0>
    <authKey>{$authkey}</authKey>
    <shopUrl>{$shop_url}</shopUrl>
    <userName>?</userName>
  </arg0>
  <arg1>
    <isOrderNumberOnlyFlg>false</isOrderNumberOnlyFlg>
    <orderSearchModel>
      <dateType>1</dateType>
      <startDate>2017-10-26</startDate>
      <endDate>2017-10-28</endDate>
    </orderSearchModel>
  </arg1>
  </ns1:getOrder>
  </SOAP-ENV:Body>
  </SOAP-ENV:Envelope>";
  $header = array(
    "Content-Type: text/xml;charset=UTF-8",
  );

  $url = "https://api.rms.rakuten.co.jp/es/1.0/order/ws";
  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $post_xml);
  $xml = curl_exec($ch);
  curl_close($ch);

  $clean_xml = str_ireplace(['S:', 'ns2:'], '', $xml);
  $data = simplexml_load_string($clean_xml);
  $data = json_decode(json_encode($data), true);

?>

ちなみにストアアカウントとは、あなたの出店ストアのアドレス(https://www.rakuten.co.jp/○○○/)にある、○○○の部分。

上記のサンプルプログラムをUTF-8で保存してアクセスしてみると、楽天RMSから受注情報が取得できる。
※サンプルでは2017-10-26から2017-10-28分が指定されている

おまけ

ついでにREST方式の楽天APIを利用するサンプルも書いておく。

楽天RMSからカテゴリ一覧を取得するAPIの例。当たり前だけど、管理画面で利用APIに指定してないと動かないので注意。

<?php

  // ------------------------------------------------ 初期設定
  $serviceSecret = "<ここにあなたのサービスシークレット>";		// サービスシークレット(1)
  $licenseKey = "<ここにあなたのライセンスキー>";				// ライセンスキー(2)

  // ------------------------------------------------ カテゴリ一覧を取得
  $authkey = base64_encode($serviceSecret . ':' . $licenseKey);
  $header = array(
    "Content-Type: text/xml;charset=UTF-8",
    "Authorization: ESA {$authkey}",
  );

  $url = "https://api.rms.rakuten.co.jp/es/1.0/categoryapi/shop/categories/get";
  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  $xml = curl_exec($ch);
  curl_close($ch);

  var_dump($xml);

?>

ドキュメントにも書かれているけど、ライセンスキーには有効期限があるので、定期的にライセンスキーを更新する必要がある。面倒臭い・・。

以上、お疲れ様でした。

Yahoo!ショッピングAPIのサンプルを書いた(プロフェッショナル出店ストア向けAPI)

概要

Yahoo!ショッピングに出店しているが、調べても欲しい機能がなかったので自分で作ることにした。

Yahoo!ショッピングの注文情報を取得するためには、Yahoo!ショッピングAPIを利用せよとのこと。

Yahoo!ショッピングAPIとは、プロフェッショナル出店のストアと連携したアプリケーションを開発するための定型プログラム群なのである。(利用は無料)

詳しくは下記のサイトへどうぞ。
developer-ec.yahoo.co.jp

前提条件

Yahoo!ショッピングAPIを利用するにあたり、次の条件を満たしている必要がある。

  • プロフェッショナル出店していること
  • アプリケーションIDを取得していること ⇒ まだならコチラから取得
  • 注文APIの利用を申請していること ⇒ まだならコチラから申請

ちなみに今回は、サーバーサイド(Yahoo! ID連携 v1)アプリケーションをPHPで開発していくことにした。

注文APIを利用申請すると、Yahoo!ショッピングテクニカルサポートから次のようなメールが届く。

f:id:kawai_norimitsu:20171025163141p:plain

赤字で囲っている部分のアプリケーションIDとサーバーのIPアドレスが一致してないと、当然プログラムは動かずエラーになるので注意!

また注文検索APIは扱う情報のセキュリティの観点から、アクセストークンが短くなっているとのことだ。

■注文APIの諸注意

注文API http://developer.yahoo.co.jp/webapi/shopping/order/

orderList, orderInfo, orderChangeの3点のAPIにつきましては、扱う情報のセキュリティの観点から他のAPIとは異なり、トークン取得からユーザが再認可をしてトークンの更新を必要とする期間が短くなっており、最大12時間となりますのでご注意ください。

orderList: http://developer.yahoo.co.jp/webapi/shopping/orderList.html
orderInfo http://developer.yahoo.co.jp/webapi/shopping/orderInfo.html
orderChange http://developer.yahoo.co.jp/webapi/shopping/orderChange.html

上記の3点のAPIに対して、ご申請のアプリケーションIDには最大時間の12時間で設定しておりますのでご了承下さい。

なおYahoo!ID連携では、ウェブAPIアクセスにおいてOAuth2.0をサポートしているとのこと。

初期設定

Yahoo!デベロッパーネットワークにアクセスして、[アプリケーションの管理]から該当する[アプリケーションの詳細]を開く。

次の設定を確認しておく。

(1)アプリケーションID
(2)シークレット
(3)コールバックURL
(4)ストア向け操作関連の機能(開示先限定スコープ)

f:id:kawai_norimitsu:20171025165539j:plain

今回のプログラムでは、「index.php(転送) ⇒ OAuth2.0(認証) ⇒ callback.php(処理)」と遷移するため、最終的に処理を行うcallback.phpのURLアドレスをコールバックURLに設定しておく。

またストア向け操作関連の機能(開示先限定スコープ)にチェックが入っていないと、プロフェッショナル出店のストアと連携できないので注意。

サンプルプログラム

Yahoo!ショッピングAPIを利用するには、ライブラリを使ったりJavaScriptを使ったりする方法があるけど、一番シンプルに必要最低限のコードをPHPで組むことにした。

まずは「index.php」のサンプル。アプリケーションIDとコールバックURLをYahoo!デベロッパーネットワークの設定に書き換えること。

<?php
  $app_id = "<ここにあなたのアプリケーションID>";			// アプリケーションID(1)
  $redirect_uri = "http://hoge.com/yahoo/callback.php";		// コールバックURL(3)

  $url = "https://auth.login.yahoo.co.jp/yconnect/v1/authorization";
  $nonce = substr(str_shuffle('1234567890abcdefghijklmnopqrstuvwxyz'), 0, 10);

  $data = http_build_query(
  array('response_type' => 'code id_token',
    'client_id' => $app_id,
    'nonce' => $nonce,
    'redirect_uri' => $redirect_uri
    )
  );
  header('location: ' . $url.'?'.$data);
  exit;
?>

次に「callback.php」のサンプル。アプリケーションIDとシークレット、コールバックURLをYahoo!デベロッパーネットワークの設定に書き換えること。

ストアアカウントは、あなたが出店しているYahoo!ストアURLの○○部分。
例)https://store.shopping.yahoo.co.jp/○○/

<?php
  // ------------------------------------------------ 初期設定
  $applicationId = "<ここにあなたのアプリケーションID>";		// アプリケーションID(1)
  $secret = "<ここにあなたのシークレット>";						// シークレット(2)
  $redirect_uri = "http://hoge.com/yahoo/callback.php";			// コールバックURL(3)
  $sellerId = "<ここにあなたのストアアカウント>";				// ストアアカウント

  // ------------------------------------------------ アクセストークン取得
  $basicAuth = base64_encode($applicationId . ':' . $secret);
  $header = array(
    "Authorization: Basic " . $basicAuth,
    "Content-Type: application/x-www-form-urlencoded;charset=UTF-8",
  );
  $post_data = array(
    'grant_type' => 'authorization_code',
    'code' => $_GET['code'],
    'redirect_uri' => $redirect_uri,
  );

  $url = "https://auth.login.yahoo.co.jp/yconnect/v1/token";
  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data));
  $json = curl_exec($ch);
  curl_close($ch);
  $data = json_decode($json, true);
  $access_token = $data["access_token"];

  // ------------------------------------------------ 注文情報取得
  $header = array(
    'Authorization: Bearer ' . $access_token,
    "Content-Type: application/x-www-form-urlencoded;charset=UTF-8",
  );
  $post_xml = "<Req>
  <SellerId>{$sellerId}</SellerId>
  <Search>
  <Field>OrderId,BillFirstName</Field>
  <Result>100</Result>
  <Sort>+order_time</Sort>
  <Condition>
  <OrderTimeFrom>20171001000000</OrderTimeFrom>
  <OrderTimeTo>20171031000000</OrderTimeTo>
  </Condition>
  </Search>
  </Req>";

  $url = "https://circus.shopping.yahooapis.jp/ShoppingWebService/V1/orderList";
  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $post_xml);
  $xml = curl_exec($ch);
  curl_close($ch);
  $data = simplexml_load_string($xml, NULL, LIBXML_NOCDATA);
  $data = json_decode(json_encode($data), true);

  var_dump($data);
?>

callback.phpは、2017年10月1日から2017年10月31日までの注文情報(オーダーIDと名前)を取得する処理をしている。

検索条件や取得したい情報を変えたい場合は、変数$post_xmlXML情報を適宜修正する。

エラーが起こるケース

もしうまくいかない場合は、次のことを確認する。

  • 注文APIの利用を申請し、許可されているか?
  • コールバックURLの設定は正しいか?
  • リクエストパラメータは正しいか?
  • ローカルで実行していないか?
  • サーバーのIPアドレスは正しいか?

あとはAPIドキュメントを読めば何とかなるはず。。

ショッピング:注文に関するAPI - Yahoo!デベロッパーネットワーク

お疲れ様でした!

PHPのHTTPS通信、SSL暗号方式をTLS1.2に対応させてみた

TLS1.2に対応する

SSL v3.0の脆弱性からTLSへの対応が求められてきたが、ついにTLS1.2以外の通信は無効にするとの連絡がきた。

結論から言うと、TLS1.2に対応するためには、cUrlのバージョンが7.34.0以上かつOpenSSLのバージョンが1.0.1以上でなければならない

環境

ウチのサーバー環境は次の通り。

エックスサーバー:X20プラン
PHP:5.6.30
cURL:7.47.1
SSL:OpenSSL/1.0.1e

エックスサーバーはPHPのバージョンを上げると、あわせてcURLやOpenSSLのバージョンが上がる仕組みだ。

下記のPHPプログラムをサーバーにアップロードして、ブラウザからアクセスすると、自分のサーバー環境が確認できる。

<?php
   phpinfo();
?>

f:id:kawai_norimitsu:20170901201431p:plain

f:id:kawai_norimitsu:20170901201440p:plain

PHPプログラム

cURLを使ったPHPプログラムのサンプル(POST送信)。

<?php
   $data = 'test1=aaa&test2=bbb';
   $ch = curl_init("https://tlstest.paypal.com");
   curl_setopt($ch, CURLOPT_POST, true);
   curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
   curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
   curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'TLSv1');
   var_dump(curl_exec($ch));
   curl_close($ch);
?>

HTTPS通信する先は、PaypalのTLS1.2対応テストサーバーを使ってみた。

あとCURLOPT_SSLVERSIONオプションに「CURL_SSLVERSION_TLSv1_2」と明示してみた。

このプログラムを自分のサーバーで走らせたとき、次の文字が表示されれば成功だ。

PayPal_Connection_OK

追記

エックスサーバーの仕様によっては、curlのバージョンが「7.29.0」、sslのバージョンが「NSS/3.28.4」であるかも知れない。

f:id:kawai_norimitsu:20180303152835p:plain

この場合は、SSLVERSION と SSL_CIPHER_LIST を明示的に指定してしまうとエラーになるので注意。

つまり正しくは、次のコードとなる。

<?php
   $data = 'test1=aaa&test2=bbb';
   $ch = curl_init("https://tlstest.paypal.com");
   curl_setopt($ch, CURLOPT_POST, true);
   curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
   var_dump(curl_exec($ch));
   curl_close($ch);
?>

PHPHTTPS通信、SSL暗号方式をTLS1.2に対応させてみた。完。

ひろゆき著「無敵の思考」を読んだ。最後のオチに驚いた。

ひろゆき著「無敵の思考」を読んだ。最後にすごいオチがあって驚かされた。

f:id:kawai_norimitsu:20170813145234p:plain

ひろゆきの本名は西村博之で、インターネットの匿名掲示板「2ちゃんねる」を作った人くらいの認識しかなかった。

その彼の著書である「無敵の思考」は、話し言葉風の文体でとても読みやすい。

ひろゆきの主張が各章で簡単にまとめられており、全200ページ程度ということもあってサクッと読める。

本書のエッセンスを自分なりにまとめてみた。

ルールを決める

人生は選択の連続だ。「買うか買わないか」「どれを食べるか」など。

意思決定には労力を使うため、その都度選択していたのではパフォーマンスが悪い。また感覚的に判断していると損をする。

だからあらかじめルールを決めておき、ルールを軸に判断するのが良いのだとひろゆき氏は主張する。

具体的には「一番安いものを買う」「外では食べない」などの自分ルールを決めておくのだ。

基準点を低くする

人生の時間は有限だ。ならば幸せを感じる時間が多いに越したことはない。

幸せを感じたいなら、考え方を変えることが重要だ。

ひろゆき氏によれば、常に最悪を想定しておくことで、幸せを感じることができるという。

例えば、年収500万円の人が300万円になれば不幸に感じ、年収200万円の人が300万円になれば幸せを感じる。同じ300万円なのに。

このように、基準点を低くしておくことで、幸福に生きられるというわけだ。

コスパを追究する

コスパとは費用対効果のことだ。

費用にはお金だけではなく、時間や労力も含まれる。

コスパを追究するなら、すべて自力でやる必要はない。

人から借りる、助けてもらうという選択肢が考えられるようになり、低コストで生きられる。

低コストで生きられれば、仕事やお金にしばられず、人生の自由度が高まる。

ネタばれ注意!

本書を最後まで楽しみたいなら、以下、読まないことをオススメする。
 
 
 
「おわりに」の最後に書かれていた一文を引用する。

『この本は編集者の種岡健さんに、過去に書いたことや話したことをまとめていただいただけなので、ちゃんと自分で書いたのは、おわりにだけなんですけどね。』

これを読んだときはズッこけた。

でも上述した通り、コスパを追究するという考え方であれば、著者が自ら実践しているものと推察できる。

「無敵の思考」の主張はロジカルかつシンプルで、面白い考え方だと思う。

生き方の選択肢を増やす意味でも一読をオススメする。

Beckyメールのテンプレートを保存場所から一括コピーする方法

概要

Beckyメーラーを使っているのだけれど、テンプレートを他の受信箱でも使いたいと思った。

一つ一つ、手作業でコピーしていくのも面倒なので、テンプレートの保存場所から一括コピーすることにした。

以下、その手順。

1.データフォルダの場所を探す

Beckyを起動して、メニューにある[ファイル]-[システム]-[データフォルダの変更]をクリックする。

f:id:kawai_norimitsu:20170723160530p:plain

不安になる文言が表示されるが、そのまま[OK]をクリックする。

f:id:kawai_norimitsu:20170723160708p:plain

Beckyが自動的に終了するので、再度、立ち上げる。すると次のようなダイアログが表示される。

f:id:kawai_norimitsu:20170723160750p:plain

データフォルダの保存場所(パス)をコピーし、[OK]ボタンをクリックする。

2.テンプレートの保存場所を開く

先ほどコピーしたパスを、フォルダのパスに貼り付ける(ペーストする)。

Enterキーを押すと、Beckyのデータフォルダが表示される。

f:id:kawai_norimitsu:20170723160943p:plain

フォルダ内にある「*.mb」形式のフォルダは、受信箱をあらわしている。

「*.mb」を開き、「#Tml」を開き、「#Reply(または#Forward)」を開く。
※「#Tml」はテンプレートフォルダ、「#Reply」は返信、「#Forward」は転送を意味している

f:id:kawai_norimitsu:20170723161250p:plain

すると「*.tml」ファイルがある。これがテンプレートファイルだ。

テキストファイルで直接編集することもできるし、これらをコピーして、別の受信箱フォルダ(*.mb)内にある返信フォルダ(#Reply)にペーストすると、一括で移行できる。

以上、お疲れ様でした。

生命保険についての個人的な見解

国民の約9割が加入している生命保険。

家の次に大きな買い物と言われているが、その仕組みをよく理解している人は少ない。

生命保険の基本と仕組みをまとめてみた。

f:id:kawai_norimitsu:20170620131942j:plain

そもそも、なんで保険に入るのか?

保険に入る目的は、おおよそ次の通り。

・医療費や入院のため
・万一のとき家族の生活保障のため
・火災や事故に備えて
・葬式代のため

ちなみに上記の大部分は、民間の任意保険に頼らなくても、お金がもらえる制度が活用できる。

医療費や入院費は、国民健康保険がある。病院の窓口で保険証を見せれば、3割負担で済むアレである。

2人に1人がガンになると脅かされているが、ガンの治療費は平均100万円で、こちらは高額療養費制度が使える。

生活保障は遺族年金や生活保護があるし、アパートを借りれば火災保険、自動車を買えば自賠責保険に強制加入させられる。

葬式は火葬で済ませれば、骨壺を含めて10万円程度。小規模なお葬式なら100万円で足りるので、貯金で対応できる額だろう。

原則として、働いていて子供がおらず、貯金が100万円以上あるなら、保険に加入する意味は少ないのだ。

それでも得体の知れない「安心感」を求めて、保険に入る人は多い。

保険の3分野

保険には、3つの分野がある。

1.生命保険

死亡時にお金がもらえる。残された家族の生活保障や、自分の葬式代に充てるためといった意味合いが強い。

2.損害保険

火災保険や自賠責保険地震保険など。人ではなくモノ(物)が対象となる保険。

3.医療保険

入院や手術時にお金がもらえる。国民健康保険で大部分が対応できるため、保険の販売員に一番ムダだと思われている保険。

先にも述べたが、損害保険には火災保険のように強制加入のものがあり、医療保険には国民健康保険があるため、大部分はカバーできている。

というわけで、検討に値するのは生命保険一択になる。

生命保険は3種類しかない

生命保険には、用途別に次の3種類がある。

1.定期保険

満期があり、満期時の返戻金はない。保険料は安いが戻ってこないので、掛け捨てと呼ばれる。万一の生活保障に向いている。

2.終身保険

満期はないが、死亡と同時に保険金が必ず支払われる。保険料はやや高い。葬式代に向いている。

3.養老保険

満期があり、満期時の返戻金がある。保険料はすごく高い。貯蓄機能があるので老後資金に向いている。

結局、いつどんな保険に入るのがいいのか?

保険は、万が一の事態が起こり、多額のお金が必要になった時に役に立つ。

例えば夫は会社員、妻が専業主婦で、子供が中学生の家庭があったとする。

一馬力なので世帯収入が少ないうえ、これから子供の学費が掛かることが予測できる。

この場面で夫が死亡した場合、収入はゼロになり、残された家族の生活は苦しくなる。

もし生命保険に加入していれば、保険金が入り、妻が就職するまで生活をやり繰りできるだろう。

逆に言えば、子供がいない場合やすでに独立している場合、妻が働いている場合は、保険に入る意味は少ない。

以上をまとめると、子供ができたり妻が無職の場合に、定期型(掛け捨て)の生命保険に入るのが最善と考えられる。

ノートパソコンのマウス(Bluetooth接続)が切れる時の解決方法

問題の現象

無線マウスは便利なのだが、時々Bluetooth接続が切れてしまって、作業に支障が出る。しばらくするとまたつながるのだが、不定期に切れてしまう。コレ何が原因なの?

f:id:kawai_norimitsu:20170510132333p:plain

ちなみに、DELLのノートパソコン(XPS15)Bluetooth接続のマウスエレコム ワイヤレスマウス Bluetooth モバイル CAPCLIP 3ボタン IRLED搭載 充電式 ホワイト M-CC1BRWH)を使用している。windowsは8.1だ。

解決方法

ネットを調べてみると、Bluetoothマウスの「電源の管理」で節電するチェックを外すとあるが、その設定がない。

他に「Bluetooth ネットワーク接続」からデバイスを無効にすると良いらしいが、無効にしても問題は解決しなかった。

詳しくはコチラのサイトへどうぞ。

結論から言うと、ノートパソコンについているタッチパッドが悪さをしていたのだった。

f:id:kawai_norimitsu:20170510133238p:plain

マウスを操作しているときにタッチパッドに触れてしまい、Bluetooth接続が切れるというオチ・・・

タッチパッドを気にしながらノートパソコンを操作したくないので、以下の手順で解決することにした。

1.設定を開く

マウスカーソルをデスクトップの右下に持っていくと、メニューが表示される。メニューにある「設定」をクリックする。f:id:kawai_norimitsu:20170510154645p:plain

2.PC設定を開く

設定の中にある「PC設定の変更」をクリックする。

f:id:kawai_norimitsu:20170510154724p:plain

3.PCとデバイスを開く

PC設定の中にある「PCとデバイス」をクリックする。

f:id:kawai_norimitsu:20170510154807p:plain

4.タッチパッドをオフにする

PCとデバイスの中にある「マウスとタッチパッド」をクリックする。続いて「マウスの接続時にタッチパッドをオンのままにする」のチェックを外す。

f:id:kawai_norimitsu:20170510154941p:plain


以上、ノートパソコンのマウス接続(Bluetooth)が切れる時の解決方法でした。