FILEMAKER プラグイン など (助け合い)フォーラムにようこそ!
何方でも、ご質問・ご回答お願いします。
※2024/01/31 までに登録された方は、登録時のパスワードが使えません。
パスワードを再発行してください。
FileMaker クリップボードXMLのスクリプトステップを入力すると、それなりにテキスト化します。
Entering script steps in FileMaker Clipboard XML will text accordingly.
展開すべき変数もないのでシングルでもダブルでもよいのでは
と思いますが、なぜダブルクオートでは正しく動作しないのでしょうか?
不明です。
が、Add-Type -Assembly...の部分は、通常の記述とは異なり、
System.Diagnostics.Process の引数として渡しているのが関係しそうです。
SMPS_Exe でなく SMPS_ExecSync を使用しているのはなぜでしょう?
SMPS_Exe( Script )を実行すると FileMakerは、30秒間は、PowerShell Scriptの終了を待ちます。
PowerShell Scriptの処理が30秒以上かかっているFileMakerにコントロールが戻りますが、PowerShell Scriptの処理は、継続されます。PowerShell Scriptの状況は、SMPS_Get("PSThreadState")で確認できます。
SMPS_ExecSync( Script )を実行すると FileMakerは、PowerShell Scriptの終了を待ちます。
長期間の放置、申し訳ございません。
投稿に気づいていませんでした。
(2022/11/16 追記)部分の修正で改善するはずです。
https://qbxxdp.blogspot.com/2020/01/fil … l-api.html
回答遅すぎですね。すみません。(質問者さん、ご覧になってないか...)
コチラのモノですね。
https://sites.google.com/site/scriptmak … rate-excel
以下のような方法で、操作対象のシートを選択できます。
シート名で設定
変数を設定 [ $er; 値:SMPS_ExecSync("$sheet = $excel.Worksheets.Item('Sheet2');$sheet.Select();")]
シートのインデックスで指定
変数を設定 [ $er; 値:SMPS_ExecSync("$sheet = $excel.Worksheets.Item(1);$sheet.Select();")]
ファイルのアップロードのJSからの操作は、ブラウザで止められています。Selenium や、Puppeteer からは、ファイルのアップロードが可能です。
Puppeteer の場合は、こんな感じでアップロード可能です。
//SetUploadFileBySelector ('input[type="file"]', 0, 'C:/Users/.../test.txt')
exports.SetUploadFileBySelector = async (selector, index, value) => {
await TargetTab.waitForSelector(selector);
const ElementHandle = await TargetTab.$$(selector);
await ElementHandle[index].uploadFile(value);
return 0;
}
↓ ある程度のブラウザ操作ができるようにしています。
FileMakerでGoogle Chrome を操作。Node.js puppeteer
https://qbxxdp.blogspot.com/2020/08/fil … eteer.html
Instagram API というのがあるようですが、投稿機能があれば、 API を使うのが良いですが、投稿機能があるかどうかは分かりません。
Filemakerからファイルを開く→選択してインスタグラムに投稿という機能を開発したいと思っております。
...
本題なのですが、ScriptMakerPSにて「ファイルを開いて選択してインスタグラムに投稿」は可能でしょうか。
WEBブライザを操作するには、HTMLを解析し、動作検証する必要があります。
Instagramのような最近のサイトは、自動操作が困難な事が多いです。
FileMakerからブラウザ操作であれば、以下が比較的カンタンかと思います。
FileMakerでGoogle Chrome を操作。Node.js puppeteer
https://qbxxdp.blogspot.com/2020/08/fil … eteer.html
以下の様なこともできますが、Instagram の操作がどこまで記録可能かは、やってみないと分かりません。
ChromeのRecord機能で記録した操作をFileMakerから実行する
https://zenn.dev/qb_dp/articles/353831a64efa47
以下の方法でも操作可能です。
FileMaker + Google ChromeでWEBスクレイピング!|Web Scraping With Filemaker
https://qbxxdp.blogspot.com/2016/08/fil … meweb.html
PowerShellでの「"」のエスケープは、` バッククォート になります。
LET([
$ファイル場所="D:\!TEMP"
;$保存場所="D:\!TEMP\ファイル更新時間.csv"
];
"cmd /c \"dir /C `\"" & $ファイル場所 & "`\" > `\"" & $保存場所 & "`\"\""
)
あと、
旧:変数を設定[$tmp; 値: External ( "Peta-Execute" ;"cmd /c \"dir /-C \"" & $ファイル場所 & "\" > \"" & $保存場所 & "\"\"" )]
コレは、WebFormMaker4ie.fmx の関数ではありません。
「dir /C...」コマンドの出力は、csvではありません。
また、ファイル出力しなくても直接 戻り値を取得できます。
>ie_Navigateは「Activation Error」と表示されてブラウザは立ち上がりません。
認証キーファイル(ScriptMakerPS.dat)が、違うと思われます。
ScriptMakerPS で代用可能ですが、Internet Explorer のサポートが終わるので実質使用不可かと思います。
以下のようなカンジでChromeの操作が可能ですが、設定がややこしいような。
FileMaker + Google ChromeでWEBスクレイピング!|Web Scraping With Filemaker
https://qbxxdp.blogspot.com/2016/08/fil … meweb.html
以下のようなモノもありますが、webFromMaker4ie ほどカンタンに設定出来ないかもしれません。
FileMakerでGoogle Chrome を操作。Node.js puppeteer
https://qbxxdp.blogspot.com/2020/08/fil … eteer.html
単純なログインであればWEBビューアで可能な場合もあります。
以下を参照してください。
Events: insert | Calendar API | Google Developers
https://developers.google.com/calendar/ … nts/insert
Events: insert | Calendar API | Google Developers
https://developers.google.com/calendar/ … nts/insert
上記の↓でイケそうな気がしますが、検証はしていません。
reminders.useDefault boolean Whether the default reminders of the calendar apply to the event.
このサンプルファイルでは、reminders の設定は、組み込んでいません。
FileMaker 標準機能で Google Calendar 追加・編集・削除
https://fm-aid.stores.jp/items/5e037b41d790db3198885824
1.このままテストユーザーのままで良いのでしょうか?
大丈夫かとは思いますが、Google API のことは事細かくは分かりません。
Google API をFileMakerから使えるサンプルを提供している感じなので...
2.Example02_Calendarのファイル名はやはり変更しない方が良いでしょうか?
大丈夫です。
3.start.dateTimeとend.dateTimeですが、こちらはフィールド設定が「タイムスタンプ」となっておりますが、「日付」に変更しても作動しますか?
というのも、基本的には「終日」でしか使わないので・・・。
ダメです。Google API の引数に関わってきます。
4.フィールド名等を勝手に日本語に変更したらマズでしょうか?
大体は大丈夫かと思いますが、ダメなところもあるかもしれません。
おそらく、以下の話ですね。
FileMaker 標準機能で Google Calendar 追加・編集・削除
https://fm-aid.stores.jp/items/5e037b41d790db3198885824
https://console.cloud.google.com/ の設定ですね。
確認してみました。
OAuth 同意画面 - 公開ステータス テスト の場合は、承認 アクセスコード 取得 が実行できます。
本番環境 では、以下が表示されます。
承認エラー
エラー 400: invalid_request
このアプリは、アプリの保護に関して Google の OAuth 2.0 ポリシーを遵守していないため、ログインできません。
Google Cloud platform の設定の問題かと思うのですが、「エラー 403: access_denied」が再現できないため 不明です。
情報が少なく思いつけることがありません...
以下の動画で設定を再度確認してみて下さい。ということ位しか...。
https://qbxxdp.blogspot.com/2020/01/fil … l-api.html
試用版は、直近24時間のメールメッセージは、取得できませんが、過去のメールは受信可能です。
おそらく以下のモノですね...
FileMaker + Google Calendar API v3 - ScriptMakerMSなどFileMaker Plugin for Windows
https://sites.google.com/site/scriptmak … dar-api-v3
かなり前に作ったモノで、curlが使えず、WEBビューアで無理しているいるので、 動作確認・修正等、ちょっとキビシイです。
有料ですが、curlを使って安定したモノがありますので、ご利用いただければと思います。
※かなり安いかと
FileMaker 標準機能で Google Calendar 追加・編集・削除
https://fm-aid.stores.jp/items/5e037b41d790db3198885824
「エラー処理をその時に行う場合、
エラーを確認し、再度受信スクリプトを走らせれば認証出来るかと思います。」とは、エラーを検知した場合、再度受信するスクリプトを組めば、スクリプト:Refresh_AccessTokenは不要で、受信できるのでしょうか?
GmailFM_template.fmp12 の スクリプト:受信 を実行すると、その中で、GoogleApiFM_Lib.fmp12 の スクリプト:Refresh_AccessToken が実行されます。
手動で行わなければ、ならない場合、再度WEB認証が必要なので、...
通常そのような事はないはずですが...。
その場合、手動で、スクリプト:Refresh_AccessToken でAccessTokenが取得を行い、、受信可能になり、しばらくスケジュールがエラー無く行われます。
と言うことなら「WEB認証」?(アプリの利用許可~承認コードの取得) を再度行う必要はありません。
[ 0.019 秒でページを生成, 6 クエリーを実行 - 使用メモリー: 643.22 KiB (ピーク: 676.63 KiB) ]