What do you want to automate

with Pinboard and Google Identity?

Prompt, edit and deploy AI agents that connect to Pinboard, Google Identity and 2,500+ other apps in seconds.

Trusted by 1,000,000+ developers from startups to Fortune 500 companies

Adyen logo
Appcues logo
Bandwidth logo
Checkr logo
ChartMogul logo
Dataminr logo
Gopuff logo
Gorgias logo
LinkedIn logo
Logitech logo
Replicated logo
Rudderstack logo
SAS logo
Scale AI logo
Webflow logo
Warner Bros. logo
Adyen logo
Appcues logo
Bandwidth logo
Checkr logo
ChartMogul logo
Dataminr logo
Gopuff logo
Gorgias logo
LinkedIn logo
Logitech logo
Replicated logo
Rudderstack logo
SAS logo
Scale AI logo
Webflow logo
Warner Bros. logo
Integrate the Pinboard API with the Google Identity API
Setup the Pinboard API trigger to run a workflow which integrates with the Google Identity API. Pipedream's integration platform allows you to integrate Pinboard and Google Identity remarkably fast. Free for developers.

Overview of Pinboard

The Pinboard API on Pipedream allows for the automation of social media content curation and sharing by interacting with a user's Pinboard account. This API provides the ability to programmatically add, update, and retrieve bookmarks, enabling users to streamline their bookmark management. Leveraging Pipedream's capabilities, developers can create sophisticated workflows that react to various triggers, manipulate data, and connect to numerous other services to enhance productivity and data management.

Connect Pinboard

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import { axios } from "@pipedream/platform"
export default defineComponent({
  props: {
    pinboard: {
      type: "app",
      app: "pinboard",
    }
  },
  async run({steps, $}) {
    return await axios($, {
      url: `https://api.pinboard.in/v1/posts/update`,
      params: {
        auth_token: `${this.pinboard.$auth.api_token}`,
      },
    })
  },
})

Connect Google Identity

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import axios from "axios";
import * as jsrsasign from "jsrsasign";

export default defineComponent({
  props: {
    google_identity: {
      type: "app",
      app: "google_identity",
    }
  },
  async run({ steps, $ }) {    
    const serviceAccountKey = JSON.parse(this.google_identity.$auth.service_account_key);
    const GOOGLE_OAUTH = 'https://www.googleapis.com/oauth2/v4/token';
    // add/remove your own scopes as needed
    const SCOPES = [
      'https://www.googleapis.com/auth/userinfo.email',
      'https://www.googleapis.com/auth/userinfo.profile',
      'https://www.googleapis.com/auth/cloud-platform',
      'https://www.googleapis.com/auth/cloud-identity',
    ];

    const getJwt = async function ({ client_email, private_key }, iat) {

      const header = {
        typ: 'JWT',
        alg: 'RS256',
      };

      const exp = iat + 3600;
      const payload = {
        aud: GOOGLE_OAUTH,
        iss: client_email,
        scope: SCOPES.join(' '),
        iat,
        exp,
      };

      const jwt = jsrsasign.KJUR.jws.JWS.sign(null, header, payload, private_key);
      return { jwt, exp };
    };

    const getToken = async function (serviceAccountKey) {
      const now = Math.floor(Date.now() / 1000);

      const jwtInfo = await getJwt(serviceAccountKey, now);

      const params = new URLSearchParams();
      params.append('grant_type', 'urn:ietf:params:oauth:grant-type:jwt-bearer');
      params.append('assertion', jwtInfo.jwt);

      const response = await axios.post(GOOGLE_OAUTH, params, {
        headers: {
          'Content-Type': 'application/x-www-form-urlencoded'
        }
      });

      const accessToken = response.data.access_token;
      return accessToken;
    };

    const generateOAuthToken = async function () {    
      return await getToken(serviceAccountKey);
    };

    // Call the function to generate the token
    const accessToken = await generateOAuthToken();

    // Call the Google Identity API to search for groups
    const response = await axios({
      method: "GET",
      url: "https://cloudidentity.googleapis.com/v1/groups:search",
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "Content-Type": "application/json"
      },
      params: {
        query: "parent == 'customers/C046psxkn'"
      }
    })

    return response.data
  },
})

Trusted by 1,000,000+ developers from startups to Fortune 500 companies

Adyen logo
Appcues logo
Bandwidth logo
Checkr logo
ChartMogul logo
Dataminr logo
Gopuff logo
Gorgias logo
LinkedIn logo
Logitech logo
Replicated logo
Rudderstack logo
SAS logo
Scale AI logo
Webflow logo
Warner Bros. logo
Adyen logo
Appcues logo
Bandwidth logo
Checkr logo
ChartMogul logo
Dataminr logo
Gopuff logo
Gorgias logo
LinkedIn logo
Logitech logo
Replicated logo
Rudderstack logo
SAS logo
Scale AI logo
Webflow logo
Warner Bros. logo