シンクロナイザで同期されないNo.02207
やまうち さん 16/05/30 21:38
 
お世話になります。

googleとの同期ができないPCがあります。
同期をすると、google連絡先での固定のグループ名のみが生成されるのですが、アド
レス情報などは入ってきません。

windows10です。
ほかの(正常に同期できている)PCと設定を比較したのですが、特に違いは見当たり
ませんでした。

入っているセキュリティーソフトかと思い、いったん、とめてみたのですが変化なか
ったです..。

どのようにしたらよいでしょうか?

以下ログ(抜粋)です。
NGなPC
2016/05/30 20:48:34 Start Sync
2016/05/30 20:48:34 SN(Start)
2016/05/30 20:48:36 GCB:IS(N=1970/01/01 9:00:00-0001/01/01 0:00:00)
2016/05/30 20:48:36 GCB:IS(N=http://www.google.com/【以下略】)
2016/05/30 20:48:36 GCB:IS(O=1970/01/01 9:00:00-0001/01/01 0:00:00)
2016/05/30 20:48:36 GCB:IS(O=http://www.google.com/【以下略】)
2016/05/30 20:48:37 GCAR Start

OKなPC
2016/05/30 20:50:45 Start Sync
2016/05/30 20:50:45 SN(Start)
2016/05/30 20:50:46 GCB:IS(N=2016/04/07 8:05:01-2016/05/30 20:27:33)
2016/05/30 20:50:46 GCB:IS(N=http://www.google.com/【以下略】-http://www.goo
gle.com/【以下略】)
2016/05/30 20:50:46 GCB:IS(O=2016/04/07 8:05:01-2016/05/30 20:27:33)
2016/05/30 20:50:46 GCB:IS(O=http://www.google.com/【以下略】-http://www.goo
gle.com/m8/【以下略】)
2016/05/30 20:50:46 SN(False:False)
2016/05/30 20:50:46 End Sync(Clear)

[ ]
RE:02207 シンクロナイザで同期されないNo.02208
秀まるお2 さん 16/05/31 09:54
 
 お手数かけてすみません。

 特定のPCだけダメってことで、1つ思いつく可能性として、Windowsに
ログオンしてるアカウント名に全角文字かあるとダメって可能性があります。

 実は、秀丸パブリッシャーの方で、以前から特定のPCでのみプレビューがうま
くいかないって問題があったんですが、原因が分からず、ある日、ユーザーアカ
ウント名に全角文字があるとダメってことに気づいてくれたユーザー様がおられ
ました。

 秀丸アドレス帳シンクロナイザのソースコードを今見直してみたら、秀丸パブ
リッシャーで問題となったやり方(APIの呼び出し方法)が、シンクロナイザの
方にもありました。なので、たぶんこっちの方も同じ問題が起きそうな気がしま
す。

 その辺どうでしょうか。

 ユーザーアカウント名が関係してそうでしたら、とりあえずこの辺直した
バージョンを1回提供させていただきたいと思います。

 ユーザーアカウント名が関係無い場合でも、とりあえずエラーログをいろいろ
出力するようにしてテストしていただくしかなさそうな気がします。

 どっちにしても、今からシンクロナイザのプログラムを見直してみます。

[ ]
RE:02208 シンクロナイザで同期されないNo.02209
やまうち さん 16/05/31 12:29
 
早速のご連絡、ありがとうございます。

NGなPCから離れてしまったので、確証が無いのですが、アカウント名に全角は使って
いなかったと思います。
(少なくとも、漢字やカナは使っていません)

念のため、戻りましたら確認しておきます。


> ユーザーアカウント名が関係無い場合でも、とりあえずエラーログをいろいろ
>出力するようにしてテストしていただくしかなさそうな気がします。

もちろん協力させていただきます。


> どっちにしても、今からシンクロナイザのプログラムを見直してみます。

よろしくお願いいたします。

[ ]
RE:02209 シンクロナイザで同期されないNo.02210
秀まるお2 さん 16/05/31 13:18
 
 ユーザーアカウントに全角文字がある方は、実は僕も先ほどテストしてみたん
ですが、問題は無さそうでした。失礼しました。

 メールデータ用フォルダに全角文字があるとダメなのかとも思ったんですが、
それも問題無さそうです。

 秀丸アドレス帳シンクロナイザは作成した担当者が退社してまして、僕が調べ
るのにちょっと手間がかかります。過去のトラブル事例の検索も含めていろいろ
トライしてみます。少々お待ちください。

[ ]
RE:02210 シンクロナイザで同期されないNo.02211
秀まるお2 さん 16/05/31 17:42
 
 とりあえず、テスト&ソースコード見直しして分かったことは・・・

 連絡いただいたエラーログは、秀丸メールのアドレス帳上で何かを書き換えて、
アドレス帳を閉じようとしたタイミングで「秀丸アドレス帳シンクロナイザで
アドレス帳を同期させます。」のメッセージが出てOKした時の記録のようだとい
うことが分かりました。

 それでエラーが出るのは理解できたのですが、たとえば秀丸アドレス帳シンク
ロナイザの常駐アイコンから「外部アドレス帳用ファイルの更新」を実行した場
合は、特にエラーが出ることなく正常動作するんですよね。

 もしも、そっちの方も異常でしたら、そっちのエラーログも欲しいです。

 とりあえず、「同期させます。」のメッセージが出た後の同期処理の場合に限
ってエラーが出るって前提で、またソースコード見直し&テストを続行します。

[ ]
RE:02211 シンクロナイザで同期されないNo.02212
やまうち さん 16/05/31 19:38
 
>ロナイザの常駐アイコンから「外部アドレス帳用ファイルの更新」を実行した場
>合は、特にエラーが出ることなく正常動作するんですよね。

はい、エラーは発生していません。

ただし、以下の動作でできたファイル「gc_xxxxxxxx.txt」をのぞくと、google連絡
先での固定のグループ名のみで追加したデータが書き出されていないようです。

アドレス帳でデータを追加→アドレス帳を閉じる→同期させますのメッセージをキャ
ンセル→「外部アドレス帳用ファイルの更新」


> とりあえず、「同期させます。」のメッセージが出た後の同期処理の場合に限
>ってエラーが出るって前提で、またソースコード見直し&テストを続行します。

「同期させます」でOK →「google連絡先より最新情報を取得中」→「秀丸アドレス
帳シンクロナイザの処理でエラーが発生したようです」となります。

引き続きよろしくお願いいたします。

[ ]
RE:02212 シンクロナイザで同期されないNo.02213
秀まるお2 さん 16/06/01 17:11
 
 いろいろ調べてみたんですが、原因よく分からずで、結局、デバッグ用のログ
出力&デバッグ用コマンドを入れる作戦にしてみました。

 以下のURLからそのバージョンがダウンロードできます。

   http://hide.maruo.co.jp/software/bin3/tkgc105b1_signed.exe

 Version 1.05β1 となります。

 タスクトレーのアイコンのマウス右ボタンメニューに、2つコマンドを追加し
ました。

 「秀丸メールのアドレス帳をGoogle連絡先側に反映」

 ってコマンドを実行すると、今回問題になってる現象が簡単に再現テストでき
ると思います。
 (いちいち秀丸メールのアドレス帳を起動して更新してって操作をしなくても
いい)

 それでtkcsync.errファイルに何が出力されるか試してみて欲しいのと、もう
1つ、

 「Google Contacts API呼び出しテスト」

 もしてみて欲しいです。それのログも欲しいです。

 メールアドレスとかも出ると思うので、そこは伏せ字にして書き込んでいただ
いてOKです。または"maruo@mitene.or.jp"に直接送っていただいてもいいです。

 よろしくお願いします。

------------------------------------------------------------------
 エラーになってる点ですが、まず、Googleからグループ一覧を取得する処理が
あるんですが、「アドレス帳をGoogle側に同期」の場合、一番更新日時の新しい
項目だけを取得しようとします。それでなぜか、1970年1月1日っていう日時が返
ってるようです。それがまずおかしいです。

 さらに、「一番更新日時の新しい連絡先」ってのを取得しようとしてるんです
が、それが失敗してるようです。

 で、それら想定外のことがあるがために、Google連絡先をすべてまとめて取得
しようとするんですが、その処理で、Google Contacts APIから例外が返って失
敗してるようです。ですが、その例外がtkcsync.errファイルに出力されてなく
て、どういう例外が起きてるのか分かりませんでした。

 ということで、まずはその例外が何か、ちゃんとerrファイルに出すようにし
たのと、他にもエラーに関する情報は全部出すようにしました。

 それで何か分かるといいんですが、あんまり自信ないです。

 他に考えられる原因(特定パソコンだけダメな理由)としては・・・

 もしかしてパソコンの内蔵時計が狂ってるとかって可能性はあるかもしれませ
んけども・・・。他にはちょっと分からないです。

[ ]
RE:02213 シンクロナイザで同期されないNo.02214
やまうち さん 16/06/01 19:47
 
お世話になります。

まず、PCの時計ですが、ずれてはいないようです。

ログをとりました。

> 「秀丸メールのアドレス帳をGoogle連絡先側に反映」

2016/06/01 19:42:32 Start Sync
2016/06/01 19:42:32 SN(Start)
2016/06/01 19:42:32 GCB:IS(N=1970/01/01 9:00:00-0001/01/01 0:00:00)
2016/06/01 19:42:32 GCB:IS(N=http://www.google.com/m8/feeds/groups/xxxxxxxxx
xxx%40gmail.com/base/f-)
2016/06/01 19:42:32 GCB:IS(O=1970/01/01 9:00:00-0001/01/01 0:00:00)
2016/06/01 19:42:32 GCB:IS(O=http://www.google.com/m8/feeds/groups/xxxxxxxxx
xxx%40gmail.com/base/f-)
2016/06/01 19:42:33 GCAR Start
2016/06/01 19:42:34 GCAR=0
2016/06/01 19:42:34 GCAR End
2016/06/01 19:42:34 MA(Start)
2016/06/01 19:42:34 Start Sync
2016/06/01 19:42:34 MA(OK Group(4))
2016/06/01 19:42:34 MA(End SplitGroup)
2016/06/01 19:42:34 MA(End SplitContact)
2016/06/01 19:42:34 SFGP(Start)
2016/06/01 19:42:34 SFGP(End SplitBuffer)
2016/06/01 19:42:34 SFGP(Start AnalyzeFunction)
2016/06/01 19:42:34 MA(Start MakeBuffer)
2016/06/01 19:42:34 MA(End MakeBuffer)
2016/06/01 19:42:34 End Sync(2)
2016/06/01 19:42:34 IsUpdate: strBuf = strFileBuf
2016/06/01 19:42:34 SN(False:False)
2016/06/01 19:42:34 End Sync(Clear)


> 「Google Contacts API呼び出しテスト」

2016/06/01 19:43:51 Start Sync
2016/06/01 19:43:51 DebugTestApi Start
2016/06/01 19:43:51 InitObject Start account=xxxxxxxxxxxx@gmail.com
2016/06/01 19:43:51 InitObject: AccessToken refresh
2016/06/01 19:43:51 InitObject OK
2016/06/01 19:43:51 will Synchronized
2016/06/01 19:43:51 Start Sync
2016/06/01 19:43:51 SN(Start)
2016/06/01 19:43:52 GCB:IS(N=1970/01/01 9:00:00-0001/01/01 0:00:00)
2016/06/01 19:43:52 GCB:IS(N=http://www.google.com/m8/feeds/groups/xxxxxxxxx
xxx%40gmail.com/base/f-)
2016/06/01 19:43:52 GCB:IS(O=1970/01/01 9:00:00-0001/01/01 0:00:00)
2016/06/01 19:43:52 GCB:IS(O=http://www.google.com/m8/feeds/groups/xxxxxxxxx
xxx%40gmail.com/base/f-)
2016/06/01 19:43:53 GCAR Start
2016/06/01 19:43:53 GCAR=0
2016/06/01 19:43:53 GCAR End
2016/06/01 19:43:53 MA(Start)
2016/06/01 19:43:53 Start Sync
2016/06/01 19:43:53 MA(OK Group(4))
2016/06/01 19:43:53 MA(End SplitGroup)
2016/06/01 19:43:53 MA(End SplitContact)
2016/06/01 19:43:53 SFGP(Start)
2016/06/01 19:43:53 SFGP(End SplitBuffer)
2016/06/01 19:43:53 SFGP(Start AnalyzeFunction)
2016/06/01 19:43:53 MA(Start MakeBuffer)
2016/06/01 19:43:53 MA(End MakeBuffer)
2016/06/01 19:43:53 End Sync(3)
2016/06/01 19:43:53 IsUpdate: strBuf = strFileBuf
2016/06/01 19:43:53 SN(False:False)
2016/06/01 19:43:53 End Sync(Clear)
2016/06/01 19:43:53 will RefreshAddressFile
2016/06/01 19:43:53 RA(Start)
2016/06/01 19:43:53 RA(OK Account)
2016/06/01 19:43:53 RA(OK Param)
2016/06/01 19:43:54 GCAR Start
2016/06/01 19:43:54 GCAR=0
2016/06/01 19:43:54 GCAR End
2016/06/01 19:43:54 MA(Start)
2016/06/01 19:43:54 Start Sync
2016/06/01 19:43:54 MA(OK Group(4))
2016/06/01 19:43:54 MA(End SplitGroup)
2016/06/01 19:43:54 MA(End SplitContact)
2016/06/01 19:43:54 SFGP(Start)
2016/06/01 19:43:54 SFGP(End SplitBuffer)
2016/06/01 19:43:54 SFGP(Start AnalyzeFunction)
2016/06/01 19:43:54 MA(Start MakeBuffer)
2016/06/01 19:43:54 MA(End MakeBuffer)
2016/06/01 19:43:54 End Sync(1)
2016/06/01 19:43:54 RA(OK Backup)
2016/06/01 19:43:54 RA(OK CheckBuffer)
2016/06/01 19:43:55 RA(OK SaveFile)
2016/06/01 19:43:55 API Test done
2016/06/01 19:43:55 End Sync(Clear)
2016/06/01 19:43:55 DebugTestApi End

よろしくお願いいたします。

[ ]
RE:02214 シンクロナイザで同期されないNo.02215
秀まるお2 さん 16/06/01 21:33
 
 ログどうもです。

 ログの中の、

> 2016/06/01 19:42:33 GCAR Start
> 2016/06/01 19:42:34 GCAR=0
> 2016/06/01 19:42:34 GCAR End

 って所は、Google Contacts APIを使って連絡先(=秀丸メールで言う所の
メンバー)一覧を取得したら、0個が返ってきたことを表してます。

 つまり、このアカウントの連絡先は何も登録されてなくて、空っぽってことじ
ゃないかと思うのですが、そういうことでは無いのやら?

2016/06/01 19:43:51 InitObject Start account=xxxxxxxxxxxx@gmail.com

 って所でアカウント名を表示してるのですが、もしかして何か別アカウントを
間違って選択してしまってるとか?。あるいは認証の時に間違って別の
アカウントで認証してしまってるとか?

 秀丸アドレス帳シンクロナイザの設定の「Googleアカウントにアクセス許可を
行う」で出てくる認証ウィンドウの右上にアカウント名が出てくると思うので、
それがたしかに目的の(連絡先の登録してある)アカウントになってるかどうか
今一度確認してみて、もし違うアカウントになってたら、アカウントを選択しな
おしてみるって辺り、確認お願いできますでしょうか。

 それしか思い当たる所が無いので・・・・

   参考画像:
   http://www.fastpic.jp/viewer.php?file=1871116277.png

[ ]
RE:02215 シンクロナイザで同期されないNo.02216
やまうち さん 16/06/02 15:12
 
ログの確認ありがとうございます。

アカウントの確認をしました。まちがいなく他のOKなPCと同じアカウントが入ってい
ます。
また、連絡先はカラではないです。

念のため、(認証ウインドウの右上を確認して)もう一度認証をしてみましたが、や
はり変化ないです..。

この後外出してしまいますので、次の確認は週明けになりそうです。
ほかにヒントがありましたらお知らせくださいませ。

よろしくお願いいたします。

[ ]
RE:02216 シンクロナイザで同期されないNo.02217
秀まるお2 さん 16/06/02 16:29
 
 確認ありがとうございます。

 秀丸アドレス帳シンクロナイザは.NET Framework用のGoogle Contacts APIの
ライブラリを呼び出してるんですが、そのライブラリは、実際には
「https:...」のようなURLでgoogleにアクセスしてて、それのやりとり内容が分
かれば(正常なPCと比較してどこが違うか分かれば)、果たして何が違うのかは
っきりするんだろうと思いますが・・・。その辺調べる方法があるのかどうか、
まだよく分かってません。

 その辺いろいろ勉強してみます。

 とりあえず現段階でテストをお願いできることとしたら、あと他には、
アドレス帳シンクロナイザの設定の中にある

       外部アドレス帳用ファイルの更新

 ボタンを押して一覧取得する場合は正常なのだとしたら、その時のtkcsync.
errには果たしてちゃんとした記録が出るのやら?。というのはありま。

 たとえば僕の所だと、

2016/06/02 16:23:37 RA(Start)
2016/06/02 16:23:37 RA(OK Account)
2016/06/02 16:23:37 RA(OK Param)
2016/06/02 16:23:37 GCAR Start
2016/06/02 16:23:39 GCAR=19
2016/06/02 16:23:39 GCAR End

 のように出まして、「GCAR=19」ってのが、19個の連絡先が取得できたことを
表します。もしここは正しく動作してるってことであれば、ここの処理でのやり
方と他の処理でのやり方の違う所が何か探して、同じ処理でトライしてみたら直
るのかもしれません。

 もし今度時間があったらこれだけお願いしたいです。

 僕の方は・・・・

 Google Contacts APIのリファレンスを今一度見直して、何かいい作戦が無い
か探してみます。

 何もいい案が無ければ・・・例えばAPI呼び出しをいろんなパラメータで試す
用のチェック機能を用意して、それでテストしてもう作戦とかも考えてみます。

[ ]
RE:02217 シンクロナイザで同期されないNo.02218
やまうち さん 16/06/06 06:44
 
おはようございます、返信遅くなりまして申し訳ありません。

ログは以下の通りです。
NGなPCでは、ひとつも取得できてないですね。その後に続くグループの取得も、
OKなPCでは14個取得していますが、NGなPCでは4個だけ(google標準?)し
か取得してません。

↓NGなPC
2016/06/06 06:07:29 Start Sync
2016/06/06 06:07:29 RA(Start)
2016/06/06 06:07:29 RA(OK Account)
2016/06/06 06:07:29 RA(OK Param)
2016/06/06 06:07:29 RA(OK Group)
2016/06/06 06:07:29 GCAR Start
2016/06/06 06:07:29 GCAR=0
2016/06/06 06:07:29 GCAR End

↓OKなPC
2016/06/06 06:30:56 Start Sync
2016/06/06 06:30:56 RA(Start)
2016/06/06 06:30:56 RA(OK Account)
2016/06/06 06:30:56 RA(OK Param)
2016/06/06 06:30:56 RA(OK Group)
2016/06/06 06:30:56 GCAR Start
2016/06/06 06:30:57 GCAR=103
2016/06/06 06:30:57 GCAR End

よろしくお願いいたします。

[ ]
RE:02218 シンクロナイザで同期されないNo.02219
秀まるお2 さん 16/06/06 08:48
 
 ログありがとうございます。

> NGなPCでは、ひとつも取得できてないですね。その後に続くグループの取得も、
> OKなPCでは14個取得していますが、NGなPCでは4個だけ(google標準?)し
> か取得してません。

 Google Contacts APIの呼び出しパラメータをいろいろ変えてみる作戦にしよ
うと思っていたんですが、普通に「外部アドレス帳用ファイルの更新」でも何も
取得できてないってことは、パラメータをいじっても結果同じになってしまいそ
うな気がします。

 認証は成功してるんだけども、その後のhttps:での通信が妨害されてるのかな
ぁと思いつつ、その辺のやりとりの中身はライブラリまかせで中身を知ることは
無理な気がします。

 「https:」のURLを自前で生成してどういうデータが流れてるのか見ることも
可能だとは思うので、その辺調べてみます。

 (昨日まで秀丸メールのバグ調査でこっちの仕事が一時中断してました。今日
から再開します)

[ ]
RE:02219 シンクロナイザで同期されないNo.02220
秀まるお2 さん 16/06/06 17:36
 
 まず、秀丸アドレス帳シンクロナイザのVersion 1.05β2をアップロードしました。
これをインストールして欲しいです。

    http://hide.maruo.co.jp/software/bin3/tkgc105b2_signed.exe

 インストールして実行してタスクトレーのアイコンで右ボタンを押すと、

    テスト用:アクセストークンの取得

 ってコマンドがあるのでそれを実行します。そうすると、「取得したアクセストー
クンをクリップボードにコピーします。....」みたいなメッセージが出るはずになり
ます。それが正常動作するか確認します。

 次に、秀丸エディタのマクロとして、以下のようなのを1つ作ります。

-----GoogleContactTest.mac-------------------------------
    //ここを書き換える
    $accessToken = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxx";

    setcompatiblemode 0x00000200;           //検索でヒットした文字列を範囲選
択する。

    #http = createobject( "Msxml2.XMLHTTP" );
    if( #http == 0 ) {
        #http = createobject( "Microsoft.XMLHTTP" );
        if( #http == 0 ) {
            message "XMLHTTPオブジェクトの生成に失敗しました。";
            endmacro;
        }
    }

    menu    "すべての連絡先を取得するテスト",
            "2016年以降に更新された連絡先のみ取得するテスト",
            "グループ一覧の取得テスト";


    if( result == 1 ) {
        goto Label_RetrieveAllContacts;
    } else if( result == 2 ) {
        goto Label_Retrieve2016OnlyContacts;
    } else if( result == 3 ) {
        goto Label_RetrieveAllContactGroups;
    }
    endmacro;



//すべての連絡先を取得するテスト
//
Label_RetrieveAllContacts:

    $url = "https://www.google.com/m8/feeds/contacts/default/full";

    callmethod #http, "open", "GET", $url, false;
    callmethod #http, "setRequestHeader", "Authorization", "Bearer " + $acce
ssToken;
    callmethod #http, "setRequestHeader", "GData-Version", "3.0";
    callmethod #http, "send", "";
    $resp = getpropstr( #http, "responseText" );
    newfile;
    insertfix $resp;

    question "メールアドレスだけ抽出しますか?";
    if( result != yes ) {
        endmacro;
    }

    gofiletop;
    #i = 0;
    while(1) {
        searchdown "(?<=<gd:email .*?address=\\').+?(?=\')", regular, nocase
sense;
        if( !result ) {
            break;
        }
        $email[#i] = gettext( seltopx, seltopy, selendx, selendy );
        #i = #i + 1;
    }
    #count = #i;
    if( #count == 0 ) {
        message "メールアドレスは1つもありませんでした。";
        endmacro;
    }
    gofiletop;
    beginsel;
    gofileend;
    delete;
    #i = 0;
    while( #i < #count ) {
        insert $email[#i] + "\n";
        #i = #i + 1;
    }
    endmacro;




//2016年以降の連絡先を取得するテスト
//
Label_Retrieve2016OnlyContacts:

    $url = "https://www.google.com/m8/feeds/contacts/default/full?update-min
=2016-01-01T00:00:00";

    callmethod #http, "open", "GET", $url, false;
    callmethod #http, "setRequestHeader", "Authorization", "Bearer " + $acce
ssToken;
    callmethod #http, "setRequestHeader", "GData-Version", "3.0";
    callmethod #http, "send", "";
    $resp = getpropstr( #http, "responseText" );
    newfile;
    insertfix $resp;

    question "メールアドレスだけ抽出しますか?";
    if( result != yes ) {
        endmacro;
    }

    gofiletop;
    #i = 0;
    while(1) {
        searchdown "(?<=<gd:email .*?address=\\').+?(?=\')", regular, nocase
sense;
        if( !result ) {
            break;
        }
        $email[#i] = gettext( seltopx, seltopy, selendx, selendy );
        #i = #i + 1;
    }
    #count = #i;
    if( #count == 0 ) {
        message "2016年以降に更新されたメールアドレスは1つもありませんでし
た。";
        endmacro;
    }
    gofiletop;
    beginsel;
    gofileend;
    delete;
    #i = 0;
    while( #i < #count ) {
        insert $email[#i] + "\n";
        #i = #i + 1;
    }
    endmacro;



//グループ一覧の取得テスト
//
Label_RetrieveAllContactGroups:
    $url = "https://www.google.com/m8/feeds/groups/default/full";

    callmethod #http, "open", "GET", $url, false;
    callmethod #http, "setRequestHeader", "Authorization", "Bearer " + $acce
ssToken;
    callmethod #http, "setRequestHeader", "GData-Version", "3.0";
    callmethod #http, "send", "";
    $resp = getpropstr( #http, "responseText" );
    newfile;
    insertfix $resp;

    question "グループ名だけ抽出しますか?";
    if( result != yes ) {
        endmacro;
    }

    gofiletop;
    #i = 0;
    while(1) {
        searchdown "(?<=<title>).+?(?=</title>)", regular, nocasesense;
        if( !result ) {
            break;
        }
        $group[#i] = gettext( seltopx, seltopy, selendx, selendy );
        #i = #i + 1;
    }
    #count = #i;
    if( #count == 0 ) {
        message "2016年以降に更新されたメールアドレスは1つもありませんでし
た。";
        endmacro;
    }
    gofiletop;
    beginsel;
    gofileend;
    delete;
    #i = 0;
    while( #i < #count ) {
        insert $group[#i] + "\n";
        #i = #i + 1;
    }
    endmacro;
-----GoogleContactTest.macおわり-------------------------

 マクロの先頭に$accessToken = "xxxxx..."って部分がありますが、ここに、秀丸
アドレス帳シンクロナイザで取得したアクセストークンを貼り付けていただきますと、
約1時間程度テストが可能になります。

 で、マクロを実行して、出てくるメニューを選択してテストしてみて欲しいです。

 それでうまく連絡先の一覧やグループの一覧が取得できるかどうか。取得できない
としたら、他のパソコンでテストした時と結果がどう違うのか、その辺の情報を全部
取って僕に送っていただければ、こちらで何がおかしいのか判断できると思います。

 ただ、僕の所に送っていただくと連絡先が全部丸わかりになってしまうので・・・
僕に送っていただくよりは、ご自身で見て何が違うか判断していただく作戦の方がい
いような気がします。例えばデータが途中で切れてるとか、メールアドレスの入るべ
き所が入って無いとか・・・。

 もし、問題のパソコンでもまったくもって正常動作するとしたら、マクロでやって
ることをアドレス帳シンクロナイザでも再現させて、それで改めてテストしていただ
きたいと思います。それでも正常なら、Google Contacts APIの「.NET Framework用
のライブラリ」自体が信用できないってことになるので、今回のような「https:」の
アクセスを独自にやって対応するしか無いかもしれません。

-------------
 あともう1点ありました。今回のV1.05β2から、Google用のライブラリのバージョ
ンが、以前は2.1だったのが2.2になってます。これでもしかしたら正常になってるか
もしれません。マクロで正常動作する場合はシンクロナイザの動作も改めてテストし
てみて欲しいです。


[ ]
RE:02220 シンクロナイザで同期されないNo.02221
やまうち さん 16/06/06 22:57
 
解決しました。ありがとうございます。
そして、大変申し訳ありませんでした。

結局、アカウントの問題でした。マクロを動かして<id>タグが異なっていることから
気づきました。

私はgoogleのアカウントを2つ持っていたようです。

1つは、b+数字10個。もう1つはg+数字10個(数字10個は同じものです)

秀丸アドレス帳シンクロナイザに連動させていたのは、bの方でOKなPCはすべてこち
らと連動していました。

NGなPCだけはgのアカウントを読みに行っていたようです。

gのアカウントは2年ほど前に作ったようで、持っていることも忘れているものでし
たが、「googleアカウントにアクセス許可を行う」でこのアカウントで許可を取った
ようです。
名前は同じですので、先日の"参考画像"では違っていることに気づきませんでした。

また、「秀丸アドレス帳シンクロナイザの設定」の「アクセス許可済みのgoogleアカ
ウント」はbのアドレスが出ていましたので、気づきませんでした。

解決まで導いていただきまして、本当にありがとうございました。
これからもよろしくお願いいたします。


自分のミスを棚に上げて、大変申し訳ないのですが、可能であれば、「アクセス許可
済みのgoogleアカウント」に表示されるアカウントは、同期をとっているアカウント
は同じにしていただけるとありがたく思います。

なお、gのアカウントは近日中に削除する予定です。

[ ]
RE:02221 シンクロナイザで同期されないNo.02222
秀まるお2 さん 16/06/07 08:45
 
 たしかに、アクセス許可の中にはgmailのメールアドレスが表示されずに名前
だけしか出てこないので、間違える可能性はありました。クリックすればメール
アドレスが出てくるので、それで確認してもらえば良かったですけども。

> 自分のミスを棚に上げて、大変申し訳ないのですが、可能であれば、「アクセス許可
> 済みのgoogleアカウント」に表示されるアカウントは、同期をとっているアカウント
> は同じにしていただけるとありがたく思います。

 アクセス許可の後に入力してもらうメールアドレスと同じかどうかチェックす
るのはたぶん出来るんと思うので、その辺、API(.NET Framework用の
ライブラリ)を見直してみて、もし可能なら警告メッセージの表示などで対応し
てみます。

[ ]