2011-11-25 9 views
16

Google API v3を使用して1つのGoogleカレンダーにアクセスしようとしています。http://code.google.com/apis/calendar/v3/using.html#introここではhttps://code.google.com/apis/console/です。必要な解決策は、「シンプルAPIアクセス」&「IPロック)」を選択します。私はこのコードを使用してページを作成するときに、今Googleの「シンプルAPIアクセスキー」を使用してGoogleカレンダー情報(PHP)にアクセスするにはどうすればよいですか?

、:

session_start(); 

require_once 'fnc/google-api-php-client/src/apiClient.php'; 
require_once 'fnc/google-api-php-client/src/contrib/apiCalendarService.php'; 

$apiClient = new apiClient(); 
$apiClient->setUseObjects(true); 
$service = new apiCalendarService($apiClient); 

if (isset($_SESSION['oauth_access_token'])) {$apiClient->setAccessToken($_SESSION['oauth_access_token']); 
} else { 
    $token = $apiClient->authenticate(); 
    $_SESSION['oauth_access_token'] = $token; 
} 

と私「のconfig.php」ファイルに私が(「X」の代わりに)ONLY私の開発者に対しキーを追加します。

global $apiConfig; 
$apiConfig = array(
    // True if objects should be returned by the service classes. 
    // False if associative arrays should be returned (default behavior). 
    'use_objects' => false, 

    // The application_name is included in the User-Agent HTTP header. 
    'application_name' => '', 

    // OAuth2 Settings, you can get these keys at https://code.google.com/apis/console 
    'oauth2_client_id' => '', 
    'oauth2_client_secret' => '', 
    'oauth2_redirect_uri' => '',  

    // The developer key, you get this at https://code.google.com/apis/console 
    'developer_key' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 

    // OAuth1 Settings. 
    // If you're using the apiOAuth auth class, it will use these values for the oauth consumer key and secret. 
    // See http://code.google.com/apis/accounts/docs/RegistrationForWebAppsAuto.html for info on how to obtain those 
    'oauth_consumer_key' => 'anonymous', 
    'oauth_consumer_secret' => 'anonymous', 

しかし、エラーが発生し、使用したくない「OAuth 2.0」システムを使用して認証しようとしていることがわかります。 APIキーを使用して1つのカレンダーにアクセスしたいだけです。

驚くべきことにGoogleで検索すると「シンプルAPIアクセスキー」とは何も見つからず、ドキュメントにも例もなく、チュートリアルも何も見つかりません。私はこの事を使っている唯一の人ですか?

誰かが私が間違っていることを教えてもらえますか?

+1

ここに...... ......どこに行ってもらえましたか? – zaf

+0

同じです...更新はありますか? – redronin

+0

好奇心を要しない - 「シンプルAPIアクセス」ダイアログの下で、許可されたIPアドレスのリストにサーバのIPを追加しましたか? – gfppaste

答えて

1

Simple API Access keyというようなものはありません。

通常、OAuth 2.0が承認に使用されます。しかし、それを使わない理由があるからです。

  • 認証にOAuth1.0を使用する場合。 API AccessページのSimple API AccessセクションにAPI keyが必要です。
  • OAuthの代わりにユーザー名&パスワードを使用する場合は、ClientLoginを参照できますが、これは推奨されません。
+1

あなたはそのようなことはないと言っていますが、「単純なAPIアクセスセクションにapiキーを取得する」と言っていますか? – Kevin

+0

「APIキー」を使用してアクセスしてください。 "Simple API Access key"というキーはありません。 – Rannnn

+0

APIキーが本当に必要かどうかチェックしましたか? https://developers.google.com/google-apps/calendar/authの情報はhttps://developers.google.com/accounts/docs/OAuthと競合しているとは思えず、私はCalendar API v3をAPIキーはまったくコンシューマキーと秘密(OAuth1) – prusswan

-1

以下のリンクを参考にしてください。 Google APIクライアントライブラリを使用すると、アナリティクス、AdSense、Google +、カレンダー、モデレーター、タスク、またはLatitudeなどのGoogle APIを、ご使用のサーバー上で任意の言語で操作できます。

http://code.google.com/p/google-api-php-client/

おかげで、 Chintu

+0

これは質問に答えません。Google APIクライアントライブラリはシンプルな統合のための悪夢です。単純なフックのための3MBのライブラリ... –

5

(私はこれが古い質問です知っているが、私は今それをやっているので、誰か がここに本当の答えを与えた場合、私は喜んでしてきたでしょう)


シンプルなAPIアクセスは文書化されていません(または私が検索した場所ではないかもしれませんが)。Google API Explorerを使用して、私が必要とするものを得る方法を見つけました。事実はかなり簡単です。 具体的なライブラリなどは必要ありません。実際はとても簡単です。

は、私の場合は、単純にG +でキーワードを検索するために必要なので、私はちょうどGET要求しなければならなかった。我々は取得したいふりをしましょう、カレンダーへのアクセス(see here)のために、今すぐ

https://www.googleapis.com/plus/v1/activities?query={KEYWORD}&key={YOUR_API_KEY} 

をアクセス制御ルールのリスト私たちは、私たちにURIを与えるcalendar.acl.listを参照する必要があります。

https://www.googleapis.com/calendar/v3/calendars/{CALENDAR_ID}/acl?key={YOUR_API_KEY} 

は空白を埋める、それはかなりあなたがする必要があるすべてです。 server key(API Accessサブメニュー)を取得し、プロジェクトのどこかに保存して、リクエストしているURI内で呼び出す。

+0

シンプルアクセスは、シンプルアクセスがデフォルトのバケツになります。 〜1日あたり10kのリクエスト – Tsadiq

+6

私はそれを働かせることができません。 { "エラー":[ { "ドメイン": "グローバル"、 "理由": "必須"、 "メッセージ": "ログインが必要"、 "locationType" 私は '{ "エラー" を取得します"ヘッダ"、 "場所": "許可" } ]、 "コード":401、 "メッセージ": "ログイン必須" } } ' iが必要このログインを解決することができれば。私はAPIキーを持っています、私は認可されたIPからアクセスしています。 – AndreaBogazzi

3

APIキーを使用してカレンダー情報にアクセスすることはできません。 APIキー(または簡単なAPIアクセスキー)は承認されたトークンではなく、Googleの検索クエリなどの一部のAPI呼び出しでのみ使用できます。 APIキーでは、このカレンダーアプリケーションによるあなたの目標であると仮定しているユーザー固有のデータにアクセスすることはできません。

また、あなたのコードでは、OAuth 2.0認証を使用するクライアントオブジェクトを作成しているため、認証エラーメッセージが表示されています。

0

今日も同じことをしようとすると、このスレッドに到達しました。これは遅いですが、答えはYESですが、実際にはユーザー認証を必要としないapiのAPIキーがあり、公式のクライアントライブラリがこれをサポートしています。

apiライブラリは、キー、値のペアであるOptionsによってこれを行います。 、単に、CallOptionインターフェイスを実装する型を作るhttps://godoc.org/google.golang.org/api/youtube/v3#VideosListCall.Do

は、APIキーを使用するには、それがAPIキーを返してみましょう:

与えユーチューブ動画の情報を取得する例を見てください、あなたはこのAPIを使用します。 APIを呼び出すときに

type APIKey struct { 
} 

func (k *APIKey) Get() (string, string) { 
    return "key", "YOU API KEY HERE" 
} 

はその後、それにAPIKEYを供給:

youtube, err := youtube.New(&http.Client{}) 
call := youtube.Videos.List("snippet,contentDetails,statistics").Id(id) 
rsp, err := call.Do(opt) 

この方法で、あなたはユーチューブクライアントのウィットを構築することができますhauthクライアントではなくvallina httpクライアントで、単純なapiキーをお楽しみください。

最初の答えでは、http GETを直接使うことができると述べていますが、エラーを処理して結果を解析する必要があります。

+0

編集:元の質問はphpですが、答えはすべてのクライアントに適用する必要があります、それは同じAPIのセットです。 – fluter

関連する問題