このチュートリアルで説明されているGoogle Places APIを使用して、ユーザータイプとして都市を取得するオートコンプリートフィールドを作成しようとしています: https://developers.google.com/places/training/autocomplete- Android
この質問は、私と同じように何度も見たことがあると思いますが、どの回答も役に立ちませんでした。知っておくべきことは次のとおりです。
APIキーを自分のものに置き換えて機能したと言って返信しないでください。そこに移動するAPIキーはAndroid固有である必要があり、ブラウザからは機能しません。
アプリに署名したキーストアから取得したSHA1フィンガープリントを使用してAndroid APIキーを作成しました。コンソールからMaps and Places APIをオンにしました。割り当て量を超えていません。
それらすべてとそれでも私にREQUEST_DENIEDを与えます
私が言及しなかったのは、O2Authをアクティブにしたということです-それは何かを変更しますか?アプリにAPIキーを配置するほど簡単ではないでしょうか?
ありがとう!
Google Places APIは現在AndroidまたはGoogle APIコンソールから生成されたiOSキーをサポートしていません。現在サポートされているのはサーバーキーとブラウザキーのみです。
このサポートをリクエストする場合は、 Places API-機能リクエスト を提出してください。
これは答えられましたが、コミュニティはもっとうまくいくと思います。
私はこれについて髪をちぎっていました、それは私には意味がありませんでした。私はiOS/Androidアプリを作成していたので、iOS/Androidキーを作成しました... 。
GoogleのPlaces APIでは、バンドル識別子は考慮されていません。
あなたが本当にやりたいことはこれです:(私は新しいユーザーインターフェースを使っています)
1。ログイン https://cloud.google.com/console#/project
プロジェクト名を選択し、API's&Auth> APIsに移動します
Places APIがオンになっていることを確認してください。これは、Places-APIを機能させるためにオンにする必要がある唯一のものです。
2。資格情報に移動します
Public API Accessの下にあるCREATE NEW KEYをクリックします。
3。 BROWSER KEYを選択します
4。 [作成、それ以外はなし]をクリックします
HTTP参照ボックスを空のままにします。
5。ここで生成されたキーを使用してください
このキーを使用すると、すべてのユーザーが任意のデバイスから開発者ログインを介してAPIにアクセスできます。あなたはそれをここで試すことができます:(YOUR_KEY_HEREを生成されたキーに置き換えてください)
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Food%20Sh&sensor=false&radius=500&location=0,0&key=YOUR_KEY_HERE
6。お楽しみください
これで、上記のURLをAndroid/iOSデバイスで使用できます。
https://developers.google.com/places/training/autocomplete-Android
APIキーを保存する
上記のコードは、Androidアプリとプレイスオートコンプリートサービスの間で直接通信する方法を示していますが、アプリにPlaces APIキーを保存しないでください。
したがって、APIキーを保存し、Places APIサービスをプロキシするウェブアプリケーションを構築する必要があります。 AndroidアプリとプロキシWebサービスの間の通信をセキュリティで保護するには、プロキシWebサービスへのユーザー認証を要求する必要があります。Androidアプリは安全に保存できますユーザーの資格情報をWebサービスに渡すか、ユーザーがAndroid WebView。
後者のアプローチの場合、Webアプリはユーザー認証トークンを作成してAndroidアプリに返し、その後、AndroidアプリはこのトークンをプロキシWebサービス。
Google開発コンソールでは、「Places API」と「Places API for Android」の両方を見つけることができるはずです
必ず「Places API for Android」を使用してください
なんらかの理由で、「Places API for Android」はAPIリストで非表示になっていますが、検索を使用してアクセスできます。
私は同じ問題を抱えていました、私は去ってそれを修正しました
これらのHTTPリファラー(Webサイト)からの要求を受け入れる(オプション)
ブラウザのキーが空
私はまだ新しいのでコメントできませんが、Moeの答えを明らかにするために、次の手順でURLクエリ(Volleyの使用について)に関する同様のGoogle Maps APIの問題をいくつか解決しました:
meta-data
タグ内のapplication
タグ内のAndroidManifest.xml
とAndroid:name="com.google.Android.maps.v2.API_KEY"
およびAndroid:value
をキーとして。これは、Maps APIとの直接のやり取り(URLクエリを除く)に使用されます。これがPlaces APIのURLクエリにも当てはまるのか、サーバーAPIキーだけが必要なのか、またはより良い解決策があるのかはわかりませんが、これでうまくいきました。
私はそれが最初のキーだけで動作することを想像します-Androidに制限されていないキー。
Google Cloud Console内で「Places」と入力してアクティブにします。 APIキーを作成し、通常どおりにAndroid Studio Appに挿入します。それだけです。
私も同じ問題を抱えていました。私にとって重要なのは、プロジェクトの課金を有効にすることでした。 「Applications for Android」の制限をまだ使用しています。支払い方法を設定した後、Places Apiは機能し始めました。
Places SDK for Androidを使用する前に、次のことを行います。
- APIキーの取得、追加、制限については、APIキーの取得ガイドに従ってください。
- プロジェクトごとに課金を有効にします。
- プロジェクトごとにPlaces APIを有効にします。
ご覧ください あり 。
また、Google Places APIは無料ではないので、料金プランも確認してください。