Components | All | New | MacOS | Windows | Linux | iOS | ||||
Examples | Mac & Win | Server | Client | Guides | Statistic | FMM | Blog | Deprecated | Old |
CURL.SetupOAuth
Setups an OAuth signed transfer.
Component | Version | macOS | Windows | Linux | Server | iOS SDK |
CURL | 8.3 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
Parameters
Parameter | Description | Example | Flags |
---|---|---|---|
curl | The CURL session handle. | $curl | |
ConsumerKey | The oauth consumer key. | "xvz1evFS4wEEPTGEFPHBog" | |
ConsumerSecret | The oauth consumer secret. | "kAcSOqF21Fu85e7zjz7ZN2U4ZRhfV3WpwPAoE3Z7kBw" | |
AccessToken | The oauth access token. Can be empty if not yet known. |
"370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb" | |
AccessTokenSecret | The oauth access token secret. Can be empty if not yet known. |
"LswwdoUaIvS8ltyTt5jkRh4J50vUPVVHtR2YPi5kE" | |
HTTPVerb | The HTTP verb. Can be POST, PUT, GET, DELETE or HEAD. Default if empty is GET. |
"POST" | |
URL | The URL to query without parameters. | "https://api.twitter.com/1.1/statuses/update.json" | |
Parameters | List of parameters. Can be empty. Please pass list with newline as delimiter. values should be URL encoded already. |
"include_entities=true" | Optional |
Headers | List of additional header entries to include. Can be empty. We automatically set Authorization header. |
"Accept: application/json¶Content-Type: application/json" | Optional |
Datas | Data value list for POST. Can be old stype key=value for form data. Or can be JSON, XML or whatever else the API expects as payload. |
"status=Hello¶others=123" | Optional |
Nonce | The nonce value. If empty, we generate it automatically for you. |
"kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg" | Optional |
Timestamp | The timestamp to use for signature. If empty, we query current timestamp (same as you calling Time.UnixTimeStamp) |
1318622958 | Optional |
HMAC | Which HMAC algorithm to use. Can be HMAC-SHA512, HMAC-SHA256 or HMAC-SHA1. Default is HMAC-SHA1 if parameter is missing or empty. |
"HMAC-SHA1" | Optional |
Verifier | The verifier. Usually an ID shown on a website after login to the service and authorization of an app. | "3456789" | Optional |
Realm | Available in MBS FileMaker Plugin 10.5 or newer. The realm value, e.g. for account name. Pass empty if not used. |
Optional |
Result
Returns OK or error.
Description
Setups an OAuth signed transfer.The plugin calculates the signature and adds headers for authorization to the CURL handle.
Sets URL with parameters and optionally data values for POST.
Examples
Setup OAuth query for Twitter:
# global settings (Sample entries from Twitter documentation)
# https://developer.twitter.com/en/docs/basics/authentication/guides/creating-a-signature.html
#
Set Variable [ $ConsumerKey ; Value: "xvz1evFS4wEEPTGEFPHBog" ]
Set Variable [ $ConsumerSecret ; Value: "kAcSOqF21Fu85e7zjz7ZN2U4ZRhfV3WpwPAoE3Z7kBw" ]
Set Variable [ $AccessToken ; Value: "370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb" ]
Set Variable [ $AccessTokenSecret ; Value: "LswwdoUaIvS8ltyTt5jkRh4J50vUPVVHtR2YPi5kE" ]
Set Variable [ $nonce ; Value: "kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg" ]
Set Variable [ $TimeStamp ; Value: "1318622958" ]
#
Set Variable [ $URL ; Value: "https://api.twitter.com/1.1/statuses/update.json" ]
Set Variable [ $Method ; Value: "POST" ]
#
Set Variable [ $Parameters ; Value: "include_entities=true" ]
Set Variable [ $Headers ; Value: "" ]
Set Variable [ $Data ; Value: "status=Hello%20Ladies%20%2B%20Gentlemen%2C%20a%20signed%20OAuth%20request%21" ]
#
Set Variable [ $curl ; Value: MBS("CURL.New") ]
Set Variable [ $result ; Value: MBS("CURL.SetupOAuth"; $curl; $ConsumerKey; $ConsumerSecret; $AccessToken; $AccessTokenSecret; $Method; $URL; $Parameters; $Headers; $Data; $Nonce; $Timestamp) ]
# Perform...
#
# signature must be hCtSmYh+iHYCEqBWrE7C7hYmtUk=
#
# Cleanup
Set Variable [ $result ; Value: MBS("CURL.Release"; $curl) ]
Query magento web service:
# globale einstellungen für Zugang
Set Variable [ $ConsumerKey ; Value: "xxx" ]
Set Variable [ $ConsumerSecret ; Value: "xxx" ]
Set Variable [ $AccessToken ; Value: "xxx" ]
Set Variable [ $AccessTokenSecret ; Value: "xxx" ]
#
# Für diesen Request GET mit der Customers URL
Set Variable [ $URL ; Value: "http://xxxx/index.php/rest/V1/customers/" & $customerID ]
Set Variable [ $Method ; Value: "GET" ]
# Optional parameters for filters
Set Variable [ $Parameters ; Value: "abc=hello¶test=world" ]
#
# Start new session
Set Variable [ $curl ; Value: MBS("CURL.New") ]
Set Variable [ $result ; Value: MBS("CURL.SetupOAuth"; $curl; $ConsumerKey; $ConsumerSecret; $AccessToken; $AccessTokenSecret; $Method; $URL; $Parameters; "") ]
# RUN now
Set Field [ CURL::Result ; MBS("CURL.Perform"; $curl) ]
# Check result
Set Field [ CURL::HTTP Response ; MBS("CURL.GetResponseCode"; $curl) ]
Set Field [ CURL::Customer Info ; MBS("CURL.GetResultAsText"; $curl; "UTF8") ]
Set Field [ CURL::debug ; MBS("CURL.GetDebugMessages"; $curl) ]
# Cleanup
Set Variable [ $result ; Value: MBS("CURL.Release"; $curl) ]
Update customers in magento:
Set Variable [ $ConsumerKey ; Value: "xxx" ]
Set Variable [ $ConsumerSecret ; Value: "xxx" ]
Set Variable [ $AccessToken ; Value: "xxx" ]
Set Variable [ $AccessTokenSecret ; Value: "xxx" ]
#
# PUT to this URL
Set Variable [ $URL ; Value: "http://m2.castinfo.im-labor.de/index.php/rest/V1/customers/" & CURL::customerID ]
Set Variable [ $Method ; Value: "PUT" ]
Set Variable [ $Content ; Value: MBS( "JSON.AddItemToObject"; "{}"; "customer"; CURL::Customer Info) ]
Set Variable [ $Parameters ; Value: "" ]
Set Variable [ $Headers ; Value: "Accept: application/json¶Content-Type: application/json" ]
#
#
# Start new session
Set Variable [ $curl ; Value: MBS("CURL.New") ]
Set Variable [ $result ; Value: MBS("CURL.SetupOAuth"; $curl; $ConsumerKey; $ConsumerSecret; $AccessToken; $AccessTokenSecret; $Method; $URL; $Parameters; $Headers) ]
Set Variable [ $result ; Value: MBS("CURL.SetDebugWithData"; $curl; 1) ]
Set Variable [ $result ; Value: MBS("CURL.SetOptionPostFields"; $curl; $Content; "UTF8") ]
# RUN now
Set Field [ CURL::Result ; MBS("CURL.Perform"; $curl) ]
# Check result
Set Field [ CURL::HTTP Response ; MBS("CURL.GetResponseCode"; $curl) ]
Set Field [ CURL::Customer Info ; MBS("CURL.GetResultAsText"; $curl; "UTF8") ]
Set Field [ CURL::debug ; MBS("CURL.GetDebugMessages"; $curl) ]
# Cleanup
Set Variable [ $result ; Value: MBS("CURL.Release"; $curl) ]
See also
- CURL.GetResponseCode
- CURL.GetResultAsText
- CURL.New
- CURL.Perform
- CURL.Release
- CURL.SetDebugWithData
- CURL.SetOptionPost
- CURL.SetOptionPostFields
- JSON.AddItemToObject
- Time.UnixTimeStamp
Release notes
- Version 14.0
- Fixed CURL.SetupAWS and CURL.SetupOAuth to reset NoBody flag if new transfer is not head.
- Version 11.4
- Added HEAD as verb for CURL.SetupAWS and CURL.SetupOAuth functions.
- Version 10.5
- Added Realm Parameter for CURL.SetupOAuth function.
- Version 8.3
- Added CURL.SetupOAuth function.
- Fixed CURL.SetupOAuth to pass parameter names in given case, no longer does lowercase.
Example Databases
Blog Entries
- MBS FileMaker Plugin, version 13.6pr1
- Neues MBS FileMaker Plugin 11.4
- MBS FileMaker Plugin 11.4 - More than 6500 Functions In One Plugin
- MBS FileMaker Plugin, version 11.4pr2
- MBS FileMaker Plugin, version 10.5pr1
- Neues MBS FileMaker Plugin 8.3
- MBS FileMaker Plugin 8.3 released
- MBS FileMaker Plugin, version 8.3pr6
- MBS FileMaker Plugin, version 8.3pr1
- CURL function for OAuth
FileMaker Magazin
This function checks for a license.
Created 24th May 2018, last changed 25th January 2023