要实现不需要Facebook登录的Instagram用户图谱API,可以使用以下步骤:
注册Instagram开发者账号并创建一个应用程序。去Instagram开发者网站(https://developers.facebook.com/docs/instagram-basic-display-api/getting-started)注册一个账号并按照指示创建一个应用程序。
获取应用程序的客户端ID和客户端密钥。完成应用程序创建后,你将获得一个客户端ID和客户端密钥。这些将用于进行API调用。
获取用户授权。为了从Instagram API中获取用户数据,你需要用户授权。使用Instagram登录API(https://developers.facebook.com/docs/instagram-basic-display-api/getting-started)中的授权重定向URL(redirect_uri)来获取用户授权。
获取访问令牌。一旦用户授权,你将获得一个授权代码。使用这个代码来获取访问令牌。发送POST请求到以下URL:
https://api.instagram.com/oauth/access_token
在请求体中包含以下参数:
client_id
:你的应用程序的客户端ID。client_secret
:你的应用程序的客户端密钥。grant_type
:授权类型,此处为authorization_code
。redirect_uri
:用户授权后重定向的URL。code
:用户授权后收到的授权代码。通过该请求,你将获得一个访问令牌和一些其他信息,如用户ID。
使用访问令牌调用API。使用从上一步获得的访问令牌来调用Instagram API获取用户的图谱数据。你可以使用访问令牌发送GET请求到以下URL:
https://graph.instagram.com/{user-id}/media?fields=id,caption,media_type,media_url,permalink,thumbnail_url,timestamp&access_token={access-token}
将{user-id}
替换为用户的ID,{access-token}
替换为访问令牌。
通过这个API调用,你将获得用户的图谱数据,例如媒体ID、标题、媒体类型、媒体URL等。
下面是一个使用Python的示例代码,演示如何获取用户访问令牌和调用Instagram API:
import requests
def get_access_token(client_id, client_secret, redirect_uri, code):
token_url = "https://api.instagram.com/oauth/access_token"
payload = {
"client_id": client_id,
"client_secret": client_secret,
"grant_type": "authorization_code",
"redirect_uri": redirect_uri,
"code": code
}
response = requests.post(token_url, data=payload)
return response.json()
def get_user_media(access_token, user_id):
api_url = f"https://graph.instagram.com/{user_id}/media"
params = {
"fields": "id,caption,media_type,media_url,permalink,thumbnail_url,timestamp",
"access_token": access_token
}
response = requests.get(api_url, params=params)
return response.json()
# 替换为你的应用程序的客户端ID和客户端密钥
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
redirect_uri = "YOUR_REDIRECT_URI"
# 获取访问令牌的授权代码
code = "AUTHORIZATION_CODE"
# 获取访问令牌
access_token_data = get_access_token(client_id, client_secret, redirect_uri, code)
access_token = access_token_data["access_token"]
user_id = access_token_data["user_id"]
# 使用访问令牌调用API获取用户的图谱数据
user_media = get_user_media(access_token, user_id)
print(user_media)
请确保替换示例代码中的YOUR_CLIENT_ID
、YOUR_CLIENT_SECRET
、YOUR_REDIRECT_URI
和AUTHORIZATION_CODE
为你自己的值。
这样,你就可以通过这个示例代码获取不需要Facebook登录的Instagram用户图谱API的数据了。