2017-04-18 5 views
1

私たちは、1つのGoogleアカウントで多くのデバイス(200以上)を設定しました。 2週間前に、このアカウントがハッキングされ、パスワードを変更する必要がありました。リモートサーバーからAPKをダウンロードします。プッシュ通知に関するリンク

この問題を解決するには、ユーザーにパスワードの変更を要求しないための代替手段が必要です。 (多くのユーザーは基本ユーザーであり、変更方法はわかりません)。

可能な代替は次のようになります。

すべてのデバイスが機能「プッシュ通知」を私たちが開発した同じアプリケーションを持っています。

私の会社のサーバから新しいバージョンのアプリケーションをダウンロードするためのURLへのリンクが付いた通知を送信することはできますか? 「click_url」パラメータを含めるオプションがありますが、AndroidManifest.xmlにカスタムフィルタアクションを実装する必要があります

この代替手段は、新しいバージョンではなく、新しいバージョンのAppをデプロイする方法がないからです。

ありがとうございます。宜しくお願いします。

+0

を。プッシュ通知からURLを設定することができます。 –

+1

ただし、ユーザーが設定/セキュリティで「不明なソース」からのインストールを許可している場合のみ。 –

+0

なぜ新しいバージョンを展開できないのですか?アプリを公開するために使用されたハッキン​​グされた電子メールですか?パスワードを変更した、つまりメールを復元したということも述べましたか? – Yazan

答えて

0

あなたが正しいです、あなたはプッシュ通知でそれを行うことができます。テスターや開発者用の私設ビルドをリリースするためにhockeyappを使用します。

1

Appsを導入するアカウントが異なるため、問題が発生してアカウントが復旧しましたが、ユーザーは端末でGoogleアカウントのパスワードを更新する必要があります。したがって、新しいバージョンを導入することはできますが、デバイスにインストールすることはできません。私たちはプッシュ通知を送信するためにPHPにバックオフィスを持っているので、プッシュコンテンツの中にリンクを送りたいと思います。ユーザーがプッシュをタッチすると、私たちの企業サーバから新しいバージョンをダウンロードします。すべてのデバイスに「不明なソース」が有効になっています。

これは、我々がプッシュ送信する必要がありますコードです:あなたはこのnotificationIntent.setData(Uri.parse(「新しいバージョンをダウンロードするためのURLを」))がある場合

private function sendPushAndroid($tituloNot, $mensajeNot) { 
    // API access key from Google API's Console 
    define('API_ACCESS_KEY', 'YOU_API_KEY'); 


    // Capturo todos los id y los meto en un array 
    // Intenta la inserción en la BBDD 
    try { 
     $conn = DbConfig::setUpDatabase(); 
     $conn->setAttribute (PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     $conn->beginTransaction(); 

     $stmt = $conn->prepare ("SELECT deviceID FROM devices WHERE plataforma = 'android';"); 
     $stmt->execute(); 
     $result = $stmt->fetchAll(); 

     foreach ($result as $v) { 
      $registrationIds = array (
        $v ["deviceID"] 
      ); 
     } 

     // var_dump($registrationIds); 

     // Do not delete "big_picture_url 
     // prep the bundle 
     $msg = array (
       'title' => $tituloNot, 
       'alert' => $mensajeNot, 
       'json' => '{"big_picture_url": "", 
        "string_extra": "100000583627394", 
        "string_value": "value", 
        "string_key": "key", 
        "is_public": true, 
        "item_type_id": 4, 
        "numeric_extra": 0}' 
     ); // string_extra? 

     $fields = array (
       'registration_ids' => $registrationIds, 
       'data' => $msg 
     ); 

     $headers = array (
       'Authorization: key=' . API_ACCESS_KEY, 
       'Content-Type: application/json' 
     ); 

     $ch = curl_init(); 
     curl_setopt ($ch, CURLOPT_URL, 'https://android.googleapis.com/gcm/send'); 
     curl_setopt ($ch, CURLOPT_POST, true); 
     curl_setopt ($ch, CURLOPT_HTTPHEADER, $headers); 
     // curl_setopt($ch,CURLOPT_RETURNTRANSFER, true); //not needed, by default it returns true or false. 
     curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false); 
     curl_setopt ($ch, CURLOPT_POSTFIELDS, json_encode ($fields)); 
     $sent = curl_exec ($ch); 
     curl_close ($ch); 
    } catch (Exception $e) { 
     // echo $e->getMessage(); 
    } 
} 
関連する問題