2017-11-30 5 views
3

私は何かの周りに私の心を包み込みたいです。私は、ios/androidアプリケーションからデータベースにアクセスするWebサービスを作成したいと考えています。今私はユーザーがInstagram APIを介してアプリにログインできるようにしたい。https PHP/MySql webserviceでログインしています

私は彼らがどのように結びついているかのように少し混乱しています。明らかにステップ1はInstagramでログインすることです。私は何をしますか?私は受け取ったこのユーザ情報(少なくともユーザ名/ IDと言う)をInstagramから来ていない他の情報とともにデータベースに保存したいと思います。すべて安全な方法で。このためにInstagramトークンを使用できますか?私はこのプロセスにちょっと固執しています...

答えて

1

あなたは非常に簡単です、あなたが質問するので、私はそれについて話を習慣ステップ3 Instagram Autorizationを完了したら、データベースとInstagramのデータを統合する方法では、次のJSON受ける必要があります。

{ 
    "access_token": "fb2e77d.47a0479900504cb3ab4a1f626d174d2d", 
    "user": { 
     "id": "1574083", 
     "username": "snoopdogg", 
     "full_name": "Snoop Dogg", 
     "profile_picture": "..." 
    } 
} 

あなたがデータをどうするarchitetureの問題です:

1)あなたは、ユーザーがInstagramのか、通常のユーザ名/パスワード

て承認することができます

パスワードフィールドとInstagramののUSER_IDの両方を持つユーザー表を作成します。

あなたのuserテーブルは次のように次のようになります。

CREATE TABLE users (
    id INT AUTO_INCREMENT NOT NULL , 
    username VARCHAR(255) NOT NULL, 
    password VARCHAR(255) DEFAULT NULL, 
    instagram_userid INT DEFAULT NULL, 
    instagram_accesstoken VARCHAR(255) DEFAULT NULL, 
    PRIMARY KEY(id) 
); 

ユーザーは、あなたがしなければならないのInstagramを通じて認証し、いつでも:

  1. ルックinstagram apiによって返された同じinstagram_useridを持つ行のテーブルを使用するためです。
  2. instagram_useridが既に存在する場合は、今すぐあなたのアプリケーションのユーザーを認証する必要があります(例:SESSIONS/COOKIES、あなたが一生懸命やったいつもの方法)。
  3. instagram_useridが存在しない場合は、Instagram APIによって返されたユーザー名でユーザー行を作成する必要があります。また、このユーザーをSESSIONで認証します。

2)Instagramのは

あなたはその後、ちょうどのみInstagramのAPIのリターンのためのミラーであるユーザーテーブルを作成する必要がありますを認証するための唯一のユーザーの選択です。あなたの主キーとしてinstagram_userid扱うことができます:ユーザーがInstagramのAPIをthrought認証

CREATE TABLE users (
    username VARCHAR(255) NOT NULL, 
    instagram_userid INT DEFAULT NULL, 
    instagram_accesstoken VARCHAR(255) DEFAULT NULL, 
    PRIMARY KEY(instagram_userid) 
); 
  1. いつでも、あなたはInstagramのAPIによって返されると同じIDを持つ行のためにあなたにユーザテーブルを検索する必要があります。
  2. 行が存在する場合は、そのユーザーをアプリケーションで認証します。
  3. 行が存在しない場合は、作成してユーザーを認証します。

をマージアカウントアプリケーションがユーザ名/ passoword認証と、おそらく他の認証プロバイダの両方を処理する場合、ユーザーが彼がアプリをあなたを通して登録が道Instagramの認証ができますことを忘れかもしれないと期待してください、とユーザー名/パスワードによる自動入力を試みます。このような場合は、アカウントを複製する代わりに、アカウントをマージする方法を提供することがあります。たとえば、ユーザーのInstagram電子メールがユーザー名としてデータベースに存在する場合、新しいアカウントを想定する代わりに、この行をinstagram apiデータで更新する必要があります。このようにして、ユーザーはusuername/passwordとInstagramで両方を認証できます。

アクセストークン

Instagramのアクセストークンが格納されているが、使用されません。どうして?ユーザーの投稿、友人リストなどのように、インスタントグラムデータを取得するために使用されるため、トークンの有効期限が切れる可能性があるため、トークンの有効期限を処理し、ユーザーに再度認証されます。

3

あなたが探していることを行うには、最も簡単な方法は、Rest WebServiceを行うことです。

このWebServiceを使用すると、iOSアプリとAndroidアプリの両方でデータの送受信やデータの送受信が可能になります。

WebServiceは、すべてのデータの管理、データベースからの情報の保存または取得を担当する必要があります。また、ユーザー認証を担当することもできます。

WebServiceと通信するには、アプリケーションでJSONを使用できます。したがって、JSONを送信して解析する方法を学ぶ必要があります。

Good Luck!

便利なリンク:あなたが提供されたユーザIDを使用することができ、データベースとのInstagramのユーザーを相関させるために

Instagram's API

Instagram Integration in Android Application Tutorial

UPDATE

{ 
    "access_token": "fb2e77d.47a0479900504cb3ab4a1f626d174d2d", 
    "user": { 
     "id": "1574083", 
     "username": "snoopdogg", 
     "full_name": "Snoop Dogg", 
     "profile_picture": "..." 
    } 
} 

参照:Instagram Authentication

+0

ありがとうございます。私はそれを明確にしています。それは私のデータベースとinstagramログインを交差させる方法を知らないだけです。 instagramで特定のデータを取得するinstagramでログインしてみましょう。その情報から、私はいつもInstagramとデータベースとの相関関係を保つためにデータベースに保存する必要がありますか? – SunnySonic

+0

更新された回答を見る – jNewbie

+0

はい、userloginやemailのようなもので、一意のログインフィールドのように使います。そのような情報や不変なものでパスワードのハッシュを生成する。 – Marco

関連する問題