Docs menu
Generate Post
Open the post creator and receive what your user publishes.
Once the SDK is set up, make an instance from window.GNR. createPost opens the editor, where your user makes and edits a post.
Usage
const gnr = new window.GNR();
// Register callbacks before initialize() so initialisation errors are caught
gnr.on("ready", () => {
// open the GNR AI post creator
gnr.createPost({
onPostPublish: function (err, data) {
if (err) {
console.error("Error publishing post:", err);
} else {
// the published post's data
console.log("Post published:", data);
}
},
});
});
gnr.on("error", (error) => {
console.error("SDK error:", error);
});
gnr.initialize({ appId: "YOUR_APP_ID", embedToken: "SSO_TOKEN" });💡 Important
Register handlers with .on() before calling initialize(), and call createPost only inside the ready callback.
Complete example
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>GNR AI SDK</title>
<script type="text/javascript" src="https://gnraisolutions.com/sdk/embed.js" async defer crossorigin="anonymous"></script>
</head>
<body>
<button id="open-editor">Generate post</button>
<script type="text/javascript">
document.getElementById("open-editor").addEventListener("click", function () {
const gnr = new window.GNR();
gnr.on("ready", () => {
gnr.createPost({
onPostPublish: function (err, data) {
if (err) return console.error("Could not publish:", err);
console.log("Published:", data); // data.media_url, data.caption, ...
},
});
});
gnr.on("error", (error) => console.error("SDK error:", error));
gnr.initialize({
appId: "YOUR_APP_ID",
embedToken: "SSO_TOKEN_FROM_YOUR_SERVER",
});
});
</script>
</body>
</html>