lCeBuAvŎHI mixi Graph APIp@
�l�C�e�B�u�A�v���Ŏ��H�I mixi Graph API���p�@


OAuth 2.0���g��
�\�[�V������Android�A�v���̍���


������Ѓ~�N�V�B
�V�X�e���{�� �Z�p�� ����ۂۃO���[�v ���� �F��
�v���b�g�t�H�[���T�[�r�X�J���� �ߌ� �Ė�
2011/3/30

�uOAuth�v���g���ăX�}�[�g�Ń\�[�V�����ȃA�v������낤

- PR -

�@�ŋ߂悭���ɂ���uOAuth�v�Ƃ́Amixi�AFacebook�ATwitter�Ȃǂ��O���T�[�r�X�Ǝ��A�v���P�[�V������A�g���邽�߂̋Z�p�ł��B

�@�u�N���E�h�v�u�\�[�V�����v�Ƃ����L�[���[�h�����΂�Ă�������ł́A�����������A�g�������ɂ��܂��s�����Ƃ������Ƃ����[�U�[�̌������コ���錮�ƂȂ�܂��B

�@���Ɂu�\�[�V�����v��������邱�Ƃ͈ȉ��̂悤�ȓ_�Ń����b�g������ƍl�����܂��B

  • ���[�U�[���\�[�V�����O���t�����p���āA�A�v�����o�C�����E�}�[�P�e�B���O�ł���
  • �����̐l�Ԋ֌W���x�[�X�ɂ������[�U�[�̌��iUX�j��񋟂��A�p���I�ɃA�v�����g���Ă��炦�郂�`�x�[�V������^������

�@�{�e�ł́A�\�[�V������mixi Graph API��Facebook Graph API�ō̗p����Ă���OAuth 2.0�́uDraft v.10�v�Ƃ����d�l�ɏœ_�𓖂āAOAuth 2.0�̗�Ƃ���mixi Graph API���g�����AAndroid�œ����l�C�e�B�u�E�A�v���P�[�V�����̍�����������܂��B

�� OAuth 2.0 Draft v.10�̏����t���[

�@Android��ł̎����ɓ���O�ɁA�����܂���OAuth 2.0�̏����t���[���T�ς��Ă����܂��B

�@OAuth 2.0 Draft v.10�ł́A�F�‚̎菇�Ƃ��Ă����‚��́g�v���t�@�C���h���߂Ă��܂��B�����ł́A�ł���{�I�ȁuWeb Server�v���t�@�C���v�����Ă����܂��B

  1. ���[�U�[���O���T�[�r�X�̔F�‚��s����ʂɃ��_�C���N�g
  2. ���[�U�[���F�‚��s��Authorization Code�i�F�ƒR�[�h�j�𔭍s
  3. Authorization Code��Access Token�i�A�N�Z�X�g�[�N���j�ƌ�������
  4. Access Token���g����API�ɃA�N�Z�X

�@�ȏ��Android�Ŏ������Ă����܂��B

�@OAuth�̗��j��AOAuth 2.0�̏ڍׂɂ‚��ẮA�ȉ��̋L�����������������B

�� �T���v���A�v���̉�ʑJ��

�@Android�ŁuOAuth 2.0 Web Server Profile�v��p�����F�ؔF�Ž菇�����������ꍇ�̉�ʑJ�ڂ́A�}1�̂悤�ȗ���ƂȂ�܂��B

TvAv̉ʑJڐ}
�T���v���A�v���̉�ʑJ�ڐ}

�@�r���́m2.�F�؉�ʁn�m3.�F�‰�ʁn�́AWeb �T�C�g��ɑ��݂���Web�y�[�W�ł��B�����̃y�[�W��\�������i�Ƃ��ẮA����2�‚̕��@���l�����܂��B

  1. �[���̎���Web�u���E�U�E�A�v���P�[�V�����iAndroid��Web�u���E�U�ȊO�ɂ��AOpera��Firefox�ANetFront�Ȃǂ�����j�ŕ\������
  2. ���ߍ��݌^Web�u���E�U�iAndroid���p�ӂ��Ă���API��WebView�N���X�j�Ŏ�������

�� Web�u���E�U�ƃl�C�e�B�u�E�A�v����Intent Filter�ł‚Ȃ�

�@Android�ł́AIntent Filter��ݒ肷�邱�ƂŁAWeb�u���E�U�ƃl�C�e�B�u�E�A�v���P�[�V�����Ԃ̑J�ڂ��e�ՂɎ����”\�ł��邽�߁A�{�e�ł́A�O�҂�Web�u���E�U�A�v���P�[�V�����𗘗p���������ɂ‚��ĉ�����܂��B

�@���[�U�[�����i�g���Ă���Web�u���E�U���g�p���邱�Ƃɂ́A���̗��_������܂��B

  • ���[�U�[�́A���ł�Web�u���E�U��Ń��O�C����Ԃɂ���ꍇ�������A�����̃��O�C���Z�b�V���������p���邱�ƂŁAID�ƃp�X���[�h�̓��͂̎�Ԃ��Ȃ���
  • ���[�U�[���g���A�t�B�b�V���O�łȂ����Ƃ��m�F�”\

�� �T���v���̊T�v

�@�T���v���́AOAuth��p�����F�؁E�F�‚��s���A���s���ꂽAccess Token��p���āA�umixi Graph API�v��1�‚ł���uPeople API�v�փ��N�G�X�g���s���A�F�l�̈ꗗ���擾���܂��B

�@�܂�Access Token�ɂ́A�L���������߂����ꍇ�̃��t���b�V�������̎������s���܂��B

TvAv̋N
�T���v���A�v���̋N�����

�� �T���v���̃\�[�X�R�[�h�E �r���h

�@�{�e�ʼn�����s��Android�A�v���P�[�V�����̃\�[�X�R�[�h�́A�ȉ��̃��|�W�g������擾�ł��܂��B

�@�{�T���v���̃r���h�ɂ́AAndroid 2.2�ȍ~��SDK���K�v�ł����AAndroidManifest.xml�ɉ��L�̐錾���s�����ƂŁAAndroid 2.1�[���ł�����”\�ł��B

<uses-sdk android:minSdkVersion="7" />

mixi Graph API�̗��p�o�^

�@OAuth�̔F�ƒt���[�ŗp����Consumer Key��Consumer Secret���擾���邽�߁A�ŏ��Ɂumixi Developer Center�v��ŃA�v���P�[�V�����i�T�[�r�X�j��o�^���܂��B�f�x���b�p�[�A�J�E���g���������łȂ��ꍇ�́A�ȉ��̋L���Ȃǂ��Q�l�ɁA�܂��f�x���b�p�[�o�^��mixi Graph API�̗��p�o�^���s���Ă��������B

�@�o�^���Ƃ��āA�u���_�C���N�gURL�v�Ƃ������ڂ�����܂��B����́A�O�߂̐}1�ŁAWeb����A�v���P�[�V�����ɑJ�ڂ���ۂɗ��p���邽�߁A�����Ƀ��j�[�N�ȃX�L�[��������URL��o�^���܂��B

�@�X�L�[���́A�Փ˂�����邽�߁A�J������A�v���P�[�V������Package Name�Ɉ�v������̂������ł��傤�B����̏ꍇ�́A�uorg.example.android.oauth://callback�v���w�肵�Ă��܂��B

�@�Ȃ��A����Intent Filter���Փ˂����ꍇ�́AWeb����̃��_�C���N�g���ɃA�v���P�[�V�����̑I���_�C�A���O���\������܂��B���̏ꍇ�́A�������A�v���P�[�V������I�����Ȃ��ƁAConsumer Key�����Secret����v���Ȃ����߁A�F�؂������ł��܂���B

�@�A�v���P�[�V�����̓o�^�葱������������ƁA�ȉ��̐}�̂悤�ȃT�[�r�X��ʂɂāA�A�v���P�[�V�����ŗp����Consumer Key�����Secret�����s����܂��B

�摜���N���b�N����ƁA�g�債�܂�

�@�����̃L�[���A�T���v���́uOAuthClient.java�v���ɋL�q���܂��B

�@�@OAuthClient.java����
    private static class EncodedConsumerKey {
        /** TODO �擾����Consumer Key�ɏ��������� */
        private static final String ENCODED_CONSUMER_KEY = "d67160�c�c";
        /** TODO �擾����Consumer Secret�ɏ��������� */
        private static final String ENCODED_CONSUMER_SECRET = "2bfdcc�c�c";

�@�����ŁA�N���X���́uEncoded�v�Ƃ����v���t�B�b�N�X�ɂ��C�Â��̕�������������Ǝv���܂��B

�@����̓T���v���̂��߁A����Encode�����A����Consumer Key��Secret���L�q���Ă��܂����A������String constant�́A�r���h�����p�b�P�[�W�t�@�C������ȒP�ɔ����o�����Ƃ��ł��Ă��܂����߁A���ӂ���������O�҂ɃA�v���P�[�V�������U������Ă��܂��”\��������܂��B�����[�X�̍ۂɂ́A���̕����ɉ��炩�̓�lj����s�����Ƃ������������܂��B

�@���y�[�W����́A��̓I�ȃT���v���̎����̉���ɓ���܂��B�K�X�A�h�L�������g���Q�Ƃ��Ă��������B

  1/3

�@INDEX
�l�C�e�B�u�A�v���Ŏ��H�I mixi Graph API���p�@�@
OAuth 2.0���g���\�[�V������Android�A�v���̍���
Page1
�uOAuth�v���g���ăX�}�[�g�Ń\�[�V�����ȃA�v������낤
mixi Graph API�̗��p�o�^
  Page2
���_�C���N�g���URL�i�Ǝ��X�L�[�}�j�̒�`
Web�u���E�U����̃��_�C���N�g���󂯎��
�F�ƒR�[�h����Access Token���󂯎��
  Page3
Access Token��p����People API�փ��N�G�X�g�𔭍s
Access Token�̗L���������؂ꂽ�ꍇ�̏���
Refresh Token�������ɂȂ����ꍇ
�A�v���Ƀ\�[�V�����ȗv�f��������Ă݂܃\


�@Smart��Social �t�H�[���� �g�b�v�y�[�W��



Smart �� Social �t�H�[���� �V���L��
��IT���[���}�K�W���@�V������X�^�b�t�̃R���������[���œ͂��܂��i�����j

���ڂ̃e�[�}

Smart & Social �L�������L���O

�{�� ����