with Apify and OpenSRS?
Emit new event when a selected Actor is run and finishes.
Emit new event when the DNS/ZONE check has passed or failed at the registry. See the documentation
Emit new event when a selected task is run and finishes.
Emit new event for each new domain registration. See the documentation
Emit new event when the status of a domain transfer changes. See the documentation
Initiate a domain transfer to OpenSRS. See the documentation
Performs an execution of a selected Actor in Apify. See the documentation
Run a specific task and return its dataset items. See the documentation
The Apify API unleashes the power to automate web scraping, process data, and orchestrate web automation workflows. By utilizing Apify on Pipedream, you can create dynamic serverless workflows to manage tasks like extracting data from websites, running browser automation, and scheduling these jobs to run autonomously. It integrates smoothly with Pipedream's capabilities to trigger actions on various other apps, store the results, and manage complex data flow with minimal setup.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
apify: {
type: "app",
app: "apify",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://api.apify.com/v2/users/me`,
headers: {
Authorization: `Bearer ${this.apify.$auth.api_token}`,
},
})
},
})
import { axios } from "@pipedream/platform";
import crypto from 'crypto';
export default defineComponent({
props: {
opensrs: {
type: "app",
app: "opensrs",
}
},
async run({steps, $}) {
const connectionDetails = {
reseller_username: this.opensrs.$auth.reseller_username,
api_key: this.opensrs.$auth.api_key,
api_host_port: this.opensrs.$auth.api_host_port
};
//Payload of the request
const xml = `<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">LOOKUP</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="domain">${this.opensrs.$auth.domain}</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>`;
// Generate signature
const generateSignature = (xml, apiKey) => {
let md5 = crypto.createHash('md5');
md5.update(xml + apiKey);
let firstHash = md5.digest('hex');
md5 = crypto.createHash('md5');
md5.update(firstHash + apiKey);
return md5.digest('hex');
};
const signature = generateSignature(xml, connectionDetails.api_key);
// Prepare and call OpenSRS API
const headers = {
'Content-Type': 'text/xml',
'X-Username': connectionDetails.reseller_username,
'X-Signature': signature
};
return await axios($, {
method: "POST",
url: connectionDetails.api_host_port,
headers,
data: xml
});
},
})