TNID
  • Welcome
  • Getting Started
    • Company Authentication
    • User Authentication
    • Accessing via Postman / GraphQL Schema examples
  • Company
    • Search Companies
    • Invite Company
    • List Organization Types
    • List Vertical Types
    • Update Company Profile
    • B2B Features
      • Send B2B Connection Request
      • List B2B Connections
      • List Pending B2B Connection Requests
      • Cancel B2B Connection Request
      • Get Received B2B Connection Requests
      • Respond to B2B Connection Requests
    • B2C Features
      • List B2C (People) Connections
      • List Pending People Connection Requests
      • List Active Subscribers
      • List Pending Subscription Requests
      • Send Person (B2C) Connection Request
      • Invite People (as Company)
      • Send Person (B2C) Subscription Request
      • Cancel Pending B2C Connection Request
      • Cancel Pending B2C Subscription Request
      • Get Pending Connection Requests (People)
      • Respond to C2B Connection Request
      • Get Connected People
      • Search People
      • List Opt-Out Requests
      • Create Opt-out Request
  • User
    • Update User profile
    • Search User (People)
    • Invite User (People)
    • Connections
      • Send C2B Connection Request
      • List B2C connections
      • List received pending B2C Connection Requests
      • Respond to received B2C Connection Request
      • Revoke sent C2B Connection Request
      • List sent pending C2B Connection Requests
    • Spam Reporting Features
      • Create Spam Report
      • List Spam Reports
    • Company Features
      • Search Companies
      • Create company profile
      • List Pending C2C Connection Requests
      • Revoke sent C2C Connection Request
      • List Received C2C Connection Requests
      • Send C2C Connection Request
      • Respond C2C Connection Request
      • List C2C Connections
  • Group Features
    • Search Groups
    • List User's Groups
    • Create Group
    • Update group
    • Invite User to Group
    • Respond to Group invite
    • List pending Group invites (Sent)
    • List pending Group invites (Received)
    • Revoke Pending Group User Member Invite
    • Send Group user member join request
    • List Received Pending Group user member join request
    • List Pending Group user member join request
    • Revoke Group user member join request
    • Respond to Group user member join request
Powered by GitBook
On this page
  • Postman
  • Example Code to access GraphQL Schema

Was this helpful?

  1. Getting Started

Accessing via Postman / GraphQL Schema examples

PreviousUser AuthenticationNextSearch Companies

Last updated 7 months ago

Was this helpful?

Postman

Once you have generated your Bearer token, you can access the GraphQL schema easily using Postman. Simply take your generated token, and create a new request using the GraphQL feature:

Load the GraphQL schema by entering the URL (https://api.staging.v2.tnid.com/company for example, for the /company endpoints), and then press "Use GraphQL Introspection" on the Schema tab.

The schema should now be accessible via Postman.

Example Code to access GraphQL Schema

import aiohttp
import pprint
from gql import gql, Client
from gql.transport.aiohttp import AIOHTTPTransport

# courtesy of https://github.com/PockyBum522/
# Please note that this basic example won't work if you have an asyncio event loop running.
# In some python environments (as with Jupyter which uses IPython) an asyncio event loop is created for you.
# In that case you should use instead https://gql.readthedocs.io/en/latest/async/async_usage.html#async-usage
def get_full_company_endpoint_schema(bearer_token):
    transport = AIOHTTPTransport(
        url="https://api.staging.v2.tnid.com/company",
        headers=
        {
            "Authorization": f"Bearer {bearer_token}"
        }
    )

    # Create a GraphQL client using the defined transport
    client = Client(transport=transport, fetch_schema_from_transport=True)

    # Make a valid query so that gql can fetch the full schema
    query = gql(
        """
        query (
            $name: String
            $taxId: String
            $email: String
            $telephoneNumber: String
            $webpage: String
            $limit: Int
          ) {
            companies (
            name: $name
            taxId: $taxId
            email: $email
            telephoneNumber: $telephoneNumber
            webpage: $webpage
            limit: $limit
            ) {
            id
            legalName
            brandName
            profileName
            taxId
            }
          }
        """
    )

    params = { "name": "schema query" }

    try:
        # Execute the query on the transport
        response = client.execute(query, params)

        # Working with the schema GQL gave us from the server
        schema = client.introspection

        print(f"Response OK: {response}")

        # Pretty print out the schema to the console
        print("Schema: ")
        pprint.pp(schema)

        return response
    except Exception as e:
        print(f"Exception: {e}")


def get_full_user_endpoint_schema(bearer_token, query_name = None, tax_id = None, email = None, phone_number = None, webpage = None, limit_count = 10):
    transport = AIOHTTPTransport(
        url="https://api.staging.v2.tnid.com/user",
        headers=
        {
            "Authorization": f"Bearer {bearer_token}"
        }
    )

    # Create a GraphQL client using the defined transport
    client = Client(transport=transport, fetch_schema_from_transport=True)

    # Make a valid query so that gql can fetch the full schema
    query = gql(
        """
        query (
            $channelType: SpamReportChannelType
            $issueType: SpamReportIssueType
            $includedStatus: SpamReportStatus
            $excludedStatus: SpamReportStatus
            $limit: Int
          ) {
            spamReports (
            channelType: $channelType
            issueType: $issueType
            includedStatus: $includedStatus
            excludedStatus: $excludedStatus
            limit: $limit
            ) {
            id
            fromNumber
            toNumber
            userNote
            messageContent
            channelType
            issueType
            status
            createdAt
            updatedAt
            timestamp
            metadata
            user {
                id
            }
            }
          }
        """
    )

    params = { "limit": 1 }

    try:
        # Execute the query on the transport
        response = client.execute(query, params)

        # Working with the schema GQL gave us from the server
        schema = client.introspection

        print(f"Response OK: {response}")

        # Pretty print out the schema to the console
        print("Schema: ")
        pprint.pp(schema)

        return response
    except Exception as e:
        print(f"Exception: {e}")


# Example usage:
token = "your_company_token"
get_full_company_endpoint_schema(token)

# OR
# token = "your_user_token"
# get_full_user_endpoint_schema(token)

Select GraphQL from the dropdown.
Authenticate using your generated Bearer token.
Press "Use GraphQL Introspection" to load the schema.