import sys
import os
vendor_path = os.path.join(os.path.dirname(__file__), 'vendor')
if vendor_path not in sys.path:
    sys.path.insert(0, vendor_path)

import tweepy


# ----------------------------------------------------
# 1. 親アカウントのDeveloper Portalで取得した API Key (Consumer Key) を入れてください
# ----------------------------------------------------
API_KEY = "kwgL751mFQ58Fkj1oCaYy6Qbk"
API_KEY_SECRET = "1UHyScykOOEsjwPAcStDljwzFIeNu7f8NYKNsy3brDkRr6kmz5"

def main():
    if API_KEY == "ここを書き換えてください":
        print("💡 エラー: まずこのファイルを開いて、API_KEY と API_KEY_SECRET を親アカウントからコピーして貼り付けてください。")
        return

    # oob (Out of Band) を指定することで、ブラウザからPINコードを取得して連携可能になります
    auth = tweepy.OAuth1UserHandler(
        consumer_key=API_KEY, 
        consumer_secret=API_KEY_SECRET,
        callback="oob"
    )

    try:
        auth_url = auth.get_authorization_url()
        print("\n=======================================================")
        print("🚨 以下のアクションを【自動化させたい『子アカウント』】でログイン中のブラウザで行ってください！")
        print("（※間違えて親アカウントのまま承認画面を開かないように気をつけてください※）\n")
        print(auth_url)
        print("\n=======================================================")
        
        pin = input("\n👉 画面に表示された「PINコード（数字）」を入力してEnterを押してください: ")
        
        # PINコードを使って子アカウント専用のアクセストークンを取得
        access_token, access_token_secret = auth.get_access_token(pin.strip())
        
        print("\n🎉 大成功です！！")
        print("以下の2行を、スプレッドシートの「アカウント管理」シートの該当箇所に貼り付けてください。\n")
        print(f"access_token:        {access_token}")
        print(f"access_token_secret: {access_token_secret}")
        print("\n")
        
    except Exception as e:
        print(f"\n❌ エラーが発生しました: {e}")
        print("・API_KEY等が間違っているか、親アカウントの「User authentication set up」でOAuth 1.0a が有効になっていない（またはCallback URLに `oob` を許可していない）可能性があります。")

if __name__ == "__main__":
    main()
