providers/vk
VkProfile
https://dev.vk.com/reference/objects/user
プロパティ
about?
optional about: string;
activities?
optional activities: string;
bdate?
optional bdate: string;
blacklisted?
optional blacklisted: 0 | 1;
blacklisted_by_me?
optional blacklisted_by_me: 0 | 1;
books?
optional books: string;
can_access_closed
can_access_closed: boolean;
can_post?
optional can_post: 0 | 1;
can_see_all_posts?
optional can_see_all_posts: 0 | 1;
can_see_audio?
optional can_see_audio: 0 | 1;
can_send_friend_request?
optional can_send_friend_request: 0 | 1;
can_write_private_message?
optional can_write_private_message: 0 | 1;
career?
optional career: {
city_id: number;
city_name: string;
company: string;
country_id: number;
from: number;
group_id: number;
position: string;
until: number;
};
city_id?
optional city_id: number;
city_name?
optional city_name: string;
company?
optional company: string;
country_id?
optional country_id: number;
from?
optional from: number;
group_id?
optional group_id: number;
position?
optional position: string;
until?
optional until: number;
都市?
optional city: {
id: number;
title: string;
};
ID
id: number;
タイトル
title: string;
common_count?
optional common_count: number;
接続?
optional connections: {
facebook: string;
instagram: string;
livejournal: string;
skype: string;
twitter: string;
};
Facebook?
optional facebook: string;
Instagram?
optional instagram: string;
LiveJournal?
optional livejournal: string;
Skype?
optional skype: string;
Twitter?
optional twitter: string;
連絡先
optional contacts: {
home_phone: string;
mobile_phone: string;
};
自宅電話?
optional home_phone: string;
携帯電話?
optional mobile_phone: string;
カウンター?
optional counters: {
albums: number;
audios: number;
followers: number;
friends: number;
groups: number;
mutual_friends: number;
notes: number;
online_friends: number;
pages: number;
photos: number;
user_videos: number;
videos: number;
};
アルバム
optional albums: number;
オーディオ
optional audios: number;
フォロワー
optional followers: number;
友達
optional friends: number;
グループ
optional groups: number;
共通の友達?
optional mutual_friends: number;
ノート
optional notes: number;
オンラインの友達?
optional online_friends: number;
ページ
optional pages: number;
写真
optional photos: number;
ユーザー動画
optional user_videos: number;
動画
optional videos: number;
国?
optional country: {
id: number;
title: string;
};
ID
id: number;
タイトル
title: string;
切り抜き写真?
optional crop_photo: {
crop: {
x: number;
x2: number;
y: number;
y2: number;
};
photo: {
access_key: string;
album_id: number;
can_comment: 0 | 1;
date: number;
has_tags: boolean;
height: number;
id: number;
images: {
height: number;
type: | "p"
| "q"
| "s"
| "r"
| "x"
| "y"
| "m"
| "l"
| "o"
| "z"
| "w";
url: string;
width: number;
}[];
lat: number;
long: number;
owner_id: number;
photo_256: string;
place: string;
post_id: number;
sizes: {
height: number;
src: string;
type: | "max"
| "k"
| "a"
| "b"
| "i"
| "p"
| "q"
| "s"
| "g"
| "d"
| "r"
| "x"
| "y"
| "m"
| "l"
| "o"
| "z"
| "w"
| "c"
| "e"
| "j"
| "temp"
| "h"
| "n"
| "f";
url: string;
width: number;
}[];
text: string;
user_id: number;
width: number;
};
rect: {
x: number;
x2: number;
y: number;
y2: number;
};
};
切り抜き
crop: {
x: number;
x2: number;
y: number;
y2: number;
};
crop.x
x: number;
crop.x2
x2: number;
crop.y
y: number;
crop.y2
y2: number;
写真
photo: {
access_key: string;
album_id: number;
can_comment: 0 | 1;
date: number;
has_tags: boolean;
height: number;
id: number;
images: {
height: number;
type: | "p"
| "q"
| "s"
| "r"
| "x"
| "y"
| "m"
| "l"
| "o"
| "z"
| "w";
url: string;
width: number;
}[];
lat: number;
long: number;
owner_id: number;
photo_256: string;
place: string;
post_id: number;
sizes: {
height: number;
src: string;
type: | "max"
| "k"
| "a"
| "b"
| "i"
| "p"
| "q"
| "s"
| "g"
| "d"
| "r"
| "x"
| "y"
| "m"
| "l"
| "o"
| "z"
| "w"
| "c"
| "e"
| "j"
| "temp"
| "h"
| "n"
| "f";
url: string;
width: number;
}[];
text: string;
user_id: number;
width: number;
};
photo.access_key?
optional access_key: string;
photo.album_id
album_id: number;
photo.can_comment?
optional can_comment: 0 | 1;
photo.date
date: number;
photo.has_tags
has_tags: boolean;
photo.height?
optional height: number;
photo.id
id: number;
photo.images?
optional images: {
height: number;
type: | "p"
| "q"
| "s"
| "r"
| "x"
| "y"
| "m"
| "l"
| "o"
| "z"
| "w";
url: string;
width: number;
}[];
photo.lat?
optional lat: number;
photo.long?
optional long: number;
photo.owner_id
owner_id: number;
photo.photo_256?
optional photo_256: string;
photo.place?
optional place: string;
photo.post_id?
optional post_id: number;
photo.sizes?
optional sizes: {
height: number;
src: string;
type: | "max"
| "k"
| "a"
| "b"
| "i"
| "p"
| "q"
| "s"
| "g"
| "d"
| "r"
| "x"
| "y"
| "m"
| "l"
| "o"
| "z"
| "w"
| "c"
| "e"
| "j"
| "temp"
| "h"
| "n"
| "f";
url: string;
width: number;
}[];
photo.text?
optional text: string;
photo.user_id?
optional user_id: number;
photo.width?
optional width: number;
矩形
rect: {
x: number;
x2: number;
y: number;
y2: number;
};
rect.x
x: number;
rect.x2
x2: number;
rect.y
y: number;
rect.y2
y2: number;
非アクティブ化?
optional deactivated: string;
ドメイン?
optional domain: string;
教育歴?
optional education: {
faculty: number;
faculty_name: string;
graduation: number;
university: number;
university_name: string;
};
学部?
optional faculty: number;
学部名?
optional faculty_name: string;
卒業?
optional graduation: number;
大学?
optional university: number;
大学名?
optional university_name: string;
メールアドレス
optional email: string;
エクスポート?
optional exports: {
facebook: number;
instagram: number;
livejournal: number;
twitter: number;
};
Facebook?
optional facebook: number;
Instagram?
optional instagram: number;
LiveJournal?
optional livejournal: number;
Twitter?
optional twitter: number;
名
first_name: string;
名(奪格)?
optional first_name_abl: string;
名(与格)?
optional first_name_acc: string;
名(属格)?
optional first_name_dat: string;
名(生格)?
optional first_name_gen: string;
名(具格)?
optional first_name_ins: string;
名(主格)?
optional first_name_nom: string;
フォロワー数?
optional followers_count: number;
友達の状態?
optional friend_status: 0 | 2 | 1 | 3;
ゲーム
optional games: string;
携帯電話あり?
optional has_mobile: 0 | 1;
写真あり?
optional has_photo: 0 | 1;
出身地?
optional home_town: string;
ID
id: number;
興味?
optional interests: string;
非公開?
is_closed: boolean;
お気に入り?
optional is_favorite: 0 | 1;
友達?
optional is_friend: 0 | 1;
フィードに非表示?
optional is_hidden_from_feed: 0 | 1;
インデックスなし?
optional is_no_index: 0 | 1;
姓
last_name: string;
姓(奪格)?
optional last_name_abl: string;
姓(与格)?
optional last_name_acc: string;
姓(属格)?
optional last_name_dat: string;
姓(生格)?
optional last_name_gen: string;
姓(具格)?
optional last_name_ins: string;
姓(主格)?
optional last_name_nom: string;
最終アクセス?
optional last_seen: {
platform: | 2
| 1
| 5
| 3
| 4
| 6
| 7;
time: number;
};
プラットフォーム?
optional platform:
| 2
| 1
| 5
| 3
| 4
| 6
| 7;
時間?
optional time: number;
旧姓?
optional maiden_name: string;
軍歴?
optional military: {
country_id: number;
from: number;
unit: string;
unit_id: number;
until: number;
};
国コード
country_id: number;
期間開始?
optional from: number;
部隊
unit: string;
部隊ID
unit_id: number;
期間終了?
optional until: number;
映画
optional movies: string;
音楽
optional music: string;
ニックネーム?
optional nickname: string;
職業?
optional occupation: {
id: number;
name: string;
type: "work" | "school" | "university";
};
ID?
optional id: number;
名前?
optional name: string;
タイプ?
optional type: "work" | "school" | "university";
オンライン?
optional online: 0 | 1;
オンラインアプリ?
optional online_app: number;
オンラインモバイル?
optional online_mobile: 0 | 1;
個人情報?
optional personal: {
alcohol: | 2
| 1
| 5
| 3
| 4;
inspired_by: string;
langs: string[];
life_main: | 2
| 1
| 5
| 3
| 4
| 6
| 7
| 8;
people_main: | 2
| 1
| 5
| 3
| 4
| 6;
political: | 2
| 1
| 5
| 3
| 4
| 6
| 7
| 8
| 9;
religion: string;
smoking: | 2
| 1
| 5
| 3
| 4;
};
アルコール?
optional alcohol:
| 2
| 1
| 5
| 3
| 4;
影響を受けたもの?
optional inspired_by: string;
言語?
optional langs: string[];
生活の中心?
optional life_main:
| 2
| 1
| 5
| 3
| 4
| 6
| 7
| 8;
人間関係の中心?
optional people_main:
| 2
| 1
| 5
| 3
| 4
| 6;
政治的見解?
optional political:
| 2
| 1
| 5
| 3
| 4
| 6
| 7
| 8
| 9;
宗教?
optional religion: string;
喫煙?
optional smoking:
| 2
| 1
| 5
| 3
| 4;
photo_100
photo_100: string;
photo_200?
optional photo_200: string;
photo_200_orig?
optional photo_200_orig: string;
photo_400?
optional photo_400: string;
photo_400_orig?
optional photo_400_orig: string;
photo_50?
optional photo_50: string;
photo_id?
optional photo_id: string;
photo_max?
optional photo_max: string;
photo_max_orig?
optional photo_max_orig: string;
quotes?
optional quotes: string;
relation?
optional relation:
| 0
| 2
| 1
| 5
| 3
| 4
| 6
| 7
| 8;
relation_partner?
optional relation_partner: {
can_access_closed: boolean;
deactivated: string;
first_name: string;
hidden: number;
id: number;
is_closed: boolean;
last_name: string;
};
can_access_closed?
optional can_access_closed: boolean;
deactivated?
optional deactivated: string;
first_name
first_name: string;
hidden?
optional hidden: number;
id
id: number;
is_closed?
optional is_closed: boolean;
last_name
last_name: string;
relatives?
optional relatives: {
id: number;
name: string;
type: | "parent"
| "child"
| "grandparent"
| "grandchild"
| "sibling";
}[];
schools?
optional schools: {
city: number;
class: string;
country: number;
id: string;
name: string;
speciality: string;
type: number;
type_str: string;
year_from: number;
year_graduated: number;
year_to: number;
}[];
screen_name?
optional screen_name: string;
sex?
optional sex: 0 | 2 | 1;
site?
optional site: string;
status?
optional status: string;
status_audio?
optional status_audio: {
access_key: string;
album_id: number;
artist: string;
date: number;
duration: number;
genre_id: number;
id: number;
owner_id: number;
performer: string;
title: string;
url: string;
};
access_key?
optional access_key: string;
album_id?
optional album_id: number;
artist
artist: string;
date?
optional date: number;
duration
duration: number;
genre_id?
optional genre_id: number;
id
id: number;
owner_id
owner_id: number;
performer?
optional performer: string;
title
title: string;
url?
optional url: string;
timezone?
optional timezone: number;
trending?
optional trending: 0 | 1;
tv?
optional tv: string;
universities?
optional universities: {
chair: number;
chair_name: string;
city: number;
country: number;
education_form: string;
education_status: string;
faculty: number;
faculty_name: string;
graduation: number;
id: number;
name: string;
university_group_id: number;
}[];
verified?
optional verified: 0 | 1;
wall_default?
optional wall_default: "all" | "owner";
default()
default<P>(options): OAuthConfig<P>
VKログインをページに追加します。
セットアップ
コールバックURL
https://example.com/api/auth/callback/vk
設定
import { Auth } from "@auth/core"
import VK from "@auth/core/providers/vk"
const request = new Request(origin)
const response = await Auth(request, {
providers: [VK({ clientId: VK_CLIENT_ID, clientSecret: VK_CLIENT_SECRET })],
})
リソース
注意事項
デフォルトでは、Auth.jsはVKプロバイダーがOAuth 2仕様に基づいていると想定しています。
💡
VKプロバイダーにはデフォルトの設定が用意されています。使用ケースに合わせてデフォルトの設定をオーバーライドするには、組み込みOAuthプロバイダーのカスタマイズをご覧ください。
デフォルトでは、プロバイダーはAPIの5.126バージョンを使用します。詳細については、https://vk.com/dev/versionsを参照してください。異なるバージョンを使用する場合は、プロバイダーのオプションオブジェクトに渡すことができます。
const apiVersion = "5.126"
providers: [
Vk({
accessTokenUrl: `https://oauth.vk.com/access_token?v=${apiVersion}`,
requestTokenUrl: `https://oauth.vk.com/access_token?v=${apiVersion}`,
authorizationUrl:
`https://oauth.vk.com/authorize?response_type=code&v=${apiVersion}`,
profileUrl: `https://api.vk.com/method/users.get?fields=photo_100&v=${apiVersion}`,
})
]
型パラメーター
型パラメーター | 値 |
---|---|
P extends Record <string , any > | VkProfile |
パラメーター
パラメーター | 型 |
---|---|
options | OAuthUserConfig <P > |
戻り値
OAuthConfig
<P
>