4

Google ドライブのウェブ インターフェースを使用して、ファイルを右クリックし、[共有] を選択して [共有設定] に移動します。ファイルを「Web 上で公開 - インターネット上のすべてのユーザーが検索および表示できる」に設定しました。

次に、「共有するリンク」をコピーします。この場合は https://docs.google.com/open?id=0B6Cpn8NXwgGPbFBPMEh5VHc1cUUです。

[完了] をクリックします。

別のブラウザー (Cookie なし) を開いてリンクにアクセスしようとすると、Google のサインイン ページにリダイレクトされます。この設定は、ファイルを表示するために認証が必要ないことを意味すると思いました。これは予想される動作ですか?

API を使用して同じことを実行しようとしていますが、アクセス許可をパブリックに設定し、「誰でも」を「リーダー」に設定し、ファイルの webContentLink 値を公開 URL として使用しても、期待される結果が得られません。この場合も、Google Apps にサインインしていないときにリンクにアクセスすると、サインインにリダイレクトされます。

これを使用してアクセス許可を設定するには、次のメソッドを呼び出します。

thePermission = insert_permission(userNickName,file['id'],"me","anyone","reader")

メソッド:

def insert_permission(userNickName,file_id, value, perm_type, role):

  credentials = get_stored_credentials(userNickName)
  service = CreateDrive(credentials)
  if service is None:
      return

  """Insert a new permission.

  Args:
    service: Drive API service instance.
    file_id: ID of the file to insert permission for.
    value: User or group e-mail address, domain name or None for 'default'
           type.
    perm_type: The value 'user', 'group', 'domain' or 'default'.
    role: The value 'owner', 'writer' or 'reader'.
  Returns:
    The inserted permission if successful, None otherwise.
  """
  new_permission = {
      'value': value,
      'type': perm_type,
      'role': role
  }
  try:
    return service.permissions().insert(
        fileId=file_id, body=new_permission).execute()
  except errors.HttpError, error:
     print 'An error occurred: %s' % error
  return None

Googleが作成したものを使用して正しい結果を期待しているかどうかを確認する方が簡単に思えるため、主にこの質問でUIインターフェイスについて質問しています。

4

1 に答える 1

2

私は最終的に私の場合に問題を発見しました。私の GAE アプリは、「Google アカウント API」ではなく、「認証オプション」に「Federated Login」を使用していました。すべてが Google Drive API で動作しました。Oauthログインを使用して、ファイルの配置、削除、移動などを行うことができます。しかし、しばらくの間、GAE アプリから作成されたファイルを Google ドライブから公開して共有できませんでした。Google Apps にログインせずにこれらのファイルを表示しようとすると、常にログインを求められました。

アプリを使用するすべての人が Google ドライブを必要とするため、GAE の Oauth ログインをやめて、Google アカウントのログインを使用することにしました。ダッシュボードの GAE アプリを「フェデレーション」から「Google アカウント」に切り替えた後、ログインを必要とせずにファイルを公開して喜んで共有できます。

そのため、Google ドライブはまだ GAE で「Federated Login」を完全にサポートしていないようですが、「Federated Login」は実験的なものであることが示されているため、これについて不満を言うことはほとんどありません。

于 2012-08-12T17:10:36.467 に答える