Tôi đang mã hóa để kết nối với API Youtube và các ví dụ tôi đã thấy sử dụng "chạy" từ các công cụ Oauthlib2 để chạy luồng auth. Có vẻ như một cái gì đó là sai trên cài đặt venv của tôi (tôi đã cài đặt lại nó như 4 lần rồi) nhưng nó không thể tìm thấy chạy ... nó có thể là một vấn đề phiên bản? Tôi có thể nhập các phần khác của thư viện nhưng không nhập .tools chạy.Oauth2 lib không thể nhập tên 'chạy'
Mã:
import httplib2
import os
import logging
from oauth2client import run
from oauth2client.file import Storage
# from oauth2client.client import AccessTokenRefreshError
from googleapiclient.discovery import build
from oauth2client.client import flow_from_clientsecrets
from googleapiclient.errors import HttpError
import json
CLIENT_SECRETS_FILE = "client_secrets.json"
YOUTUBE_READ_WRITE_SCOPE = "https://www.googleapis.com/auth/youtube"
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"
MISSING_CLIENT_SECRETS_MESSAGE = "Missing client secrets file"
def authenticate():
httplib2.debuglevel = 4
flow = flow_from_clientsecrets(CLIENT_SECRETS_FILE,
scope=YOUTUBE_READ_WRITE_SCOPE,
message=MISSING_CLIENT_SECRETS_MESSAGE)
storage = Storage("%s-oauth2.json")
credentials = storage.get()
if credentials is None or credentials.invalid:
print('invalid credentials')
credentials = run_flow(flow, storage)
service = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
http=credentials.authorize(httplib2.Http()))
tags = "classical music", "yehudi mehunin"
body = dict(
snippet=dict(
title="some title",
description="a description",
tags=tags,
categoryId="4"
),
status=dict(
privacyStatus="Private"
)
)
thingy = service.videos().insert(part=",".join(body.keys()), body=None, media_body=MediaFileUpload(
"1977.mp4", mimetype="video/mp4", chunksize=1024 * 1024, resumable=False))
thingy.execute()
authenticate()
lỗi:
Traceback (most recent call last): File "/home/xavier/Code/autotube/youtube3.py", line 4, in <module> from oauth2client import run ImportError: cannot import name 'run'
Cảm ơn bạn. Đó là yêu cầu tôi cho một đối số cờ, nhưng chương trình của tôi không phải là dòng lệnh dựa. Có một cách giải quyết cho điều này ? 'credentials = run_flow (flow, storage,?)' – xavier
cập nhật câu trả lời của tôi để phản ánh câu hỏi f'up của bạn – ferdy
Cảm ơn bạn, rất hữu ích :) Upvote trên đường đi! – xavier