이 문서는 다음 Azure에 페이스 북에 따라 웹 기반 응용 프로그램을 만드는 방법
페이스 북의 마케팅 응용 프로그램에 따라, 응용 프로그램은 캔버스 페이지에 매핑됩니다. Azure 기반으로 URL (예: http://azurefacebooksample.cloudapp.net/)이 초기 연락처 정보를 표시 하는 폼입니다. 여기에 귀하의 연락처 정보를 표시 하는 방법이입니다.
목록 1
[Canvasauthorize (perms = "User_birthday")]
공공 ActionResult 색인)
{
Facebookapp 애플 리 케이 션 = 새로운 Facebookapp ();
동적 응답 = 애플 리 케이 션. Api ("나");
문의 연락처 = 새로운 연락처 ();
문의. 이름 = Response.first_name;
문의. LastName = Response.last_name;
문자열 쿼리 = "사용자에서 Birthday_date를 선택 어디 uid = 나 ()";
응답 = 애플 리 케이 션. FQL (쿼리);
경우 (응답. 계산 > 0)
문의. dateOfBirth = 응답 [0].birthday_date;
반환 보기 (접촉);
}
프로그램은 상대적으로 쉽고, 페이스 북 C 감사 되었습니다 # SDK. SDK는 "Canvasauthorize" 기능을 통해 페이스 북 OAuth 인증 및 응용 프로그램 권한 부여를 처리 하 고 "Facebookapp" 개체를 제공 합니다. 당신은 새로운 사용자 "Azuresample"를 실행 하기 전에 그들은 사용자의 생년월일에 액세스 하려면 응용 프로그램 특별 한 권한을 부여 했다 기억 한다. 우리는 이것을 달성 하기 위해 할 필요가 필요한 확장된 권한 (지정 "User_birthday" 사용 권한) 선택적 임을 지정 하는 "canvasauthorize" 기능을 사용 하 여 권한 부여를 필요로 하는 모든 컨트롤러 액션 태그입니다.
"Facebookapp" 개체 액세스 뿐만 아니라 페이스 북의 서명 된 요청 정보를 그래프 Api와 Api를 나머지는. 이 컨트롤러에서 사용 하는 "Facebookapp" 그래프 ("나") (를 포함 하 여 성과 이름) 현재 사용자에 대 한 정보를 반환 하는 API 호출을. 이 그래프 API를 사용 하 여이 사용자에 대 한 출생의 날짜를 얻을 수 없습니다 우리 하지만 우리는 페이스 북 FQL을 현재 사용자의 생년월일을 찾을 수 있는 쿼리를 만들 수 있습니다. 우리는 "Facebookapp"를 통해 FQL (형식 쿼리 언어)을 사용할 수 있습니다. 우리는 새로운 "연락처" 개체는 도메인 개체에서 데이터 모델 개체는이 사용자의이 정보를 추가 합니다. 그럼 우리는 보기에이 "접촉"를 넣어.
이것은이 인덱싱된 뷰에 대 한 전체 코드입니다.
목록 2
< % @ 페이지 제목 = "" 언어 = "C#" masterpagefile = "~ / views/shared/site.master"
상속 = "System.web.mvc.viewpage < azurefacebooksample.domain.models.contact >" % >
< asp: 콘텐츠 id = "Content1" contentplaceholderid = "titlecontent" runat = "Server" >
홈
< / asp: 내용 >
< asp: 콘텐츠 id = "Content2" contentplaceholderid "maincontent" runat = "Server" = >
< div > 다음 정보를 제공 하십시오. 모든 필드는 필수. < / div >
< %를 사용 하 여 (Html.BeginForm ())
{% >
< %: Html.validationsummary (True) % >
< div class = "편집기 레이블" >
< %: html.labelfor (모델 = > 모델. FirstName) % >
< / div >
< div class = "편집기 필드" >
< %: html.textboxfor (모델 = > 모델. FirstName) % >
< %: html.validationmessagefor (모델 = > 모델. FirstName) % >
< / div >
< div class = "편집기 레이블" >
< %: html.labelfor (모델 = > 모델. LastName) % >
< / div >
< div class = "편집기 필드" >
< %: html.textboxfor (모델 = > 모델. LastName) % >
< %: html.validationmessagefor (모델 = > 모델. LastName) % >
< / div >
< div class = "편집기 레이블" >
< %: html.labelfor (모델 = > 모델. 이메일) % >
< / div >
< div class = "편집기 필드" >
< %: html.textboxfor (모델 = > 모델. 이메일) % >
< %: html.validationmessagefor (모델 = > 모델. 이메일) % >
< / div >
< div class = "편집기 레이블" >
< %: html.labelfor (모델 = > 모델. dateOfBirth) % >
< / div >
< div class = "편집기 필드" >
< %: html.editorfor (모델 = > 모델. dateOfBirth) % >
< %: html.validationmessagefor (모델 = > 모델. dateOfBirth) % >
< / div >
< div > 해야는 이상 참여. < / div >
< div class = "편집기 레이블" >
< %: html.labelfor (모델 = > 모델. ZIP) % >
< / div >
< div class = "편집기 필드" >
< %: html.textboxfor (모델 = > 모델. ZIP) % >
< %: html.validationmessagefor (모델 = > 모델. ZIP) % >
< / div >
< p >
< 입력 유형 = "Submit" 값 = "다음에" / >
</p >
< %} % >
< / aspContent >
이 보기는 연락처 정보를 수집 하는 데 사용 되는 양식 필드를 지정 합니다. 유효성 검사 연락처 데이터 모델에 특정 주석을 통해 이루어집니다. 사용자가 "다음" 단추를 클릭 하면 이러한 양식 필드 컨트롤러의 포스트 작업에 전송 됩니다.
목록 3
[HttpPost]
[Canvasauthorize]
공공 ActionResult 인덱스 (연락처 연락처)
{
Facebookapp 애플 리 케이 션 = 새로운 Facebookapp ();
문의. Partitionkey = 애플 리 케이 션. Userid.tostring ();
경우 (modelstate.isvalid)
{
Contactrepository.save (접촉);
이 반환 합니다. Canvasredirecttoaction ("Selectstore");
}
반환 보기 (접촉);
}
연락처 정보 폼에서 반환 된, 우리는 사용자의 페이스 북의 ID를 크롤 링 하 고 우리 (고객 수만 한 번 등록 및 수신 상품) 응용 프로그램에 미래의 액세스를 추적할 수 있도록 "연락처"에 그것을 넣어 "Facebookapp" 개체를 사용 합니다.