2016-08-03 8 views
2

Ich muss Ereignisse in meinem Kalender ohne Benutzerauthentifizierung einfügen.Google Kalender API Ereignis einfügen ohne Auth Rails

Variablen:

OOB_URI = 'urn:ietf:wg:oauth:2.0:oob' 
    APPLICATION_NAME = 'Google Calendar API Ruby Quickstart' 
    CLIENT_SECRETS_PATH = './lib/client_secret.json' 
    CREDENTIALS_PATH = File.join(Dir.home, '.credentials', 
           "calendar-ruby-quickstart.yaml") 
    SCOPE = Google::Apis::CalendarV3::AUTH_CALENDAR 

    def initialize(meeting_data) 
    @meeting_data = meeting_data 
    end 

Autorisieren Prozess:

def authorize 
    FileUtils.mkdir_p(File.dirname(CREDENTIALS_PATH)) 

    client_id = Google::Auth::ClientId.from_file(CLIENT_SECRETS_PATH) 
    token_store = Google::Auth::Stores::FileTokenStore.new(file: CREDENTIALS_PATH) 
    authorizer = Google::Auth::UserAuthorizer.new(
     client_id, SCOPE, token_store) 
    user_id = '2' 
    credentials = authorizer.get_credentials(user_id) 
    if credentials.nil? 
     url = authorizer.get_authorization_url(
      base_url: OOB_URI) 
     puts "Open the following URL in the browser and enter the " + 
       "resulting code after authorization" 
     puts url 
     code = gets 
     credentials = authorizer.get_and_store_credentials_from_code(
      user_id: user_id, code: code, base_url: OOB_URI) 
    end 
    credentials 
    end 

Erstellen Methode:

def create_meeting 
    # Initialize the API 
    service = Google::Apis::CalendarV3::CalendarService.new 
    service.client_options.application_name = APPLICATION_NAME 
    service.authorization = authorize 
    ... 
    # Create event end post 
    ... 
    end 

Als ich diese Methoden zu starten, muss ich einige Konsole Tricks machen (ich nehmen Token von Google und an ihnen vorbei in die Konsole) und nach dem Event-Posting. Kann ich diesen Prozess automatisieren? Oder Token mit langer Lebenszeit nehmen?

Dieser Prozess muss ohne Benutzer ausgeführt werden.

Antwort

Verwandte Themen