我不知道必须添加什么作为 Snowflake 的授权重定向 URI
我也尝试过这个 https://
我尝试使用 Snowflake 外部访问集成调用 google ads api,这是我遵循的流程:
已创建网络规则
CREATE OR REPLACE NETWORK RULE Googleadsallow
MODE = EGRESS
TYPE = HOST_PORT
VALUE_LIST = ('googleads.googleapis.com');
创建安全集成
CREATE OR REPLACE SECURITY INTEGRATION Googleads_outh
TYPE = api_authentication
AUTH_TYPE = oauth2
OAUTH_CLIENT_ID = 'my_client_id'
OAUTH_CLIENT_SECRET = 'my_client_secret'
OAUTH_TOKEN_ENDPOINT = 'https://accounts.google.com/o/oauth2/token'
OAUTH_AUTHORIZATION_ENDPOINT='https://accounts.google.com/o/oauth2/auth'
OAUTH_ALLOWED_SCOPES =('https://www.googleapis.com/auth/adwords')
ENABLED = true;
使用刷新令牌创建秘密
CREATE OR REPLACE SECRET Google_ads_secret
TYPE = oauth2
OAUTH_REFRESH_TOKEN = 'my_refresh_token'
API_AUTHENTICATION=Googleads_outh;
我通过输入 Adwords api 的范围从 Outh2.0 游乐场生成了刷新令牌,并在此处使用了它。
创建外部访问集成
CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION Google_ads_Integration
ALLOWED_NETWORK_RULES = (Googleadsallow)
ALLOWED_AUTHENTICATION_SECRETS = (Google_ads_secret)
ENABLED = true;
然后我用这个定义创建了函数
CREATE OR REPLACE FUNCTION google_python()
RETURNS string
LANGUAGE PYTHON
RUNTIME_VERSION = 3.8
HANDLER = 'get_translation'
EXTERNAL_ACCESS_INTEGRATIONS = (Google_ads_Integration)
PACKAGES = ('snowflake-snowpark-python','requests')
SECRETS = ('cred' = Google_ads_secret )
AS
$$
import _snowflake
import requests
import json
session = requests.Session()
def get_translation():
token = _snowflake.get_oauth_access_token('cred')
url = "https://googleads.googleapis.com/v15/customers:listAccessibleCustomers"
response = session.post(url, headers = {"Developer-token":"my_developer_token","Authorization": "Bearer " + token,"Login-customer-id":"my_id",})
return str(response)
$$;
这给了我 Response 404 ,我尝试从函数中打印令牌并使用具有相同令牌的邮递员调用 api,
通过在 Google 云中添加邮递员回调 uri https://oauth.pstmn.io/v1/browser-callback 授权重定向 URI
它有效并给出了响应,但是我不知道必须添加什么作为 Snowflake 的授权重定向 URI
我也尝试过这个 https://
你找到解决办法了吗,我也面临同样的问题?