The document provides steps to integrate Facebook login and authorization into a mobile app using the Facebook SDK for iOS. It includes instructions on installing the SDK, creating a Facebook app, adding code to handle login and authentication, and displaying login and authenticated views. Key steps are:
1. Install Facebook SDK and add necessary files to Xcode project
2. Create a Facebook app and get app ID and secret
3. Add code to AppDelegate to handle session state changes and open/close sessions
4. Add LoginViewController to display login screen modally and call authentication methods
5. Add code to view controllers to show login screen if unauthenticated and main app screen if authenticated
Get things done with Yii - quickly build webapplicationsGiuliano Iacobelli
Lesson teached at Università di Roma Tre - Software Engineering course.
Web is plenty of amazing tools used daily by millions of people. A good idea can turn to be a highly profitable business if well executed. Yii framework is an ideal tool to build in short time an MVP of your product to start as soon as possible to find your market fit. Here follows some infos about the framework and steps on how to build a simple blog over Yii.
This document provides a quick start guide to using the Joomla! content management system. It explains the basic principles of organizing content into sections, categories, and items. It then provides step-by-step instructions for creating sections and categories, adding content items, and using the administrator interface. The guide assumes the reader has Joomla! already installed and covers the essential functions to get started managing website content.
Introduction to React for Frontend DevelopersSergio Nakamura
The document provides an introduction to React for frontend developers. It discusses why React is useful, including its declarative style, automatic updates, use of a virtual DOM, and modular component structure. It then covers React basics like building functional components, what JSX is, and how to use JavaScript code within JSX.
Rails Plugins - Linux For You, March 2011 IssueSagar Arlekar
'Linux For You' article by http://foodlets.in founders Govind Naroji and Sagar Arlekar.
This is a tutorial on will_paginate (pagination), authlogic + omniauth (authentication) and paperclip (file attachments) plugins.
With just a few lines of code, you can light up your Web application as a Windows 7 application. Pinned sites lets you brand your application. And the code doesn't change other browsers and older versions.
10 ways to bind multiple models on a view in mvc code projectAkshat Kumar
This document discusses 10 different ways to bind multiple models to a single view in ASP.NET MVC. It begins with an introduction and problem statement, then details each approach with examples: 1) View model, 2) View bag, 3) View data, 4) Temp data, 5) Session, 6) Dynamic, 7) Tuples, 8) Render action, 9) JSON, and 10) Navigation properties. For each approach, it shows how to modify the controller action and view to display blog and comment data on a single view.
CyberLab Training Division :
ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites. It allows you to use a full featured programming language such as C# or VB.NET to build web applications easily.
This tutorial covers all the basic elements of ASP.NET that a beginner would require to get started.
Audience
This tutorial has been prepared for the beginners to help them understand basic ASP.NET programming. After completing this tutorial you will find yourself at a moderate level of expertise in ASP.NET programming from where you can take yourself to next levels.
Prerequisites
Before proceeding with this tutorial, you should have a basic understanding of .NET programming language. As we are going to develop web-based applications using ASP.NET web application framework, it will be good if you have an understanding of other web technologies such as HTML, CSS, AJAX. etc
ASP.NET supports three different development models:
Web Pages, MVC (Model View Controller), and Web Forms.
For More Details.
Visit: http://www.cyberlabzone.com
Yahoo! Application Platform Technical Deep DiveTony Ng
Learn how to build applications for a platform that can reach 330M+ worldwide users! This session gives a technical overview of the Yahoo! Application Platform (YAP), which enables third-party applications to be embedded within popular Yahoo! destinations such as My Yahoo! and the Yahoo! home page. The session will cover key features of YAP, including Yahoo Markup Language (YML), Caja, Open Social, image cache and application editor. Next the talk will explain how to build an application for this platform as well as best practices to deliver great user experience from your application.
Get things done with Yii - quickly build webapplicationsGiuliano Iacobelli
Lesson teached at Università di Roma Tre - Software Engineering course.
Web is plenty of amazing tools used daily by millions of people. A good idea can turn to be a highly profitable business if well executed. Yii framework is an ideal tool to build in short time an MVP of your product to start as soon as possible to find your market fit. Here follows some infos about the framework and steps on how to build a simple blog over Yii.
This document provides a quick start guide to using the Joomla! content management system. It explains the basic principles of organizing content into sections, categories, and items. It then provides step-by-step instructions for creating sections and categories, adding content items, and using the administrator interface. The guide assumes the reader has Joomla! already installed and covers the essential functions to get started managing website content.
Introduction to React for Frontend DevelopersSergio Nakamura
The document provides an introduction to React for frontend developers. It discusses why React is useful, including its declarative style, automatic updates, use of a virtual DOM, and modular component structure. It then covers React basics like building functional components, what JSX is, and how to use JavaScript code within JSX.
Rails Plugins - Linux For You, March 2011 IssueSagar Arlekar
'Linux For You' article by http://foodlets.in founders Govind Naroji and Sagar Arlekar.
This is a tutorial on will_paginate (pagination), authlogic + omniauth (authentication) and paperclip (file attachments) plugins.
With just a few lines of code, you can light up your Web application as a Windows 7 application. Pinned sites lets you brand your application. And the code doesn't change other browsers and older versions.
10 ways to bind multiple models on a view in mvc code projectAkshat Kumar
This document discusses 10 different ways to bind multiple models to a single view in ASP.NET MVC. It begins with an introduction and problem statement, then details each approach with examples: 1) View model, 2) View bag, 3) View data, 4) Temp data, 5) Session, 6) Dynamic, 7) Tuples, 8) Render action, 9) JSON, and 10) Navigation properties. For each approach, it shows how to modify the controller action and view to display blog and comment data on a single view.
CyberLab Training Division :
ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites. It allows you to use a full featured programming language such as C# or VB.NET to build web applications easily.
This tutorial covers all the basic elements of ASP.NET that a beginner would require to get started.
Audience
This tutorial has been prepared for the beginners to help them understand basic ASP.NET programming. After completing this tutorial you will find yourself at a moderate level of expertise in ASP.NET programming from where you can take yourself to next levels.
Prerequisites
Before proceeding with this tutorial, you should have a basic understanding of .NET programming language. As we are going to develop web-based applications using ASP.NET web application framework, it will be good if you have an understanding of other web technologies such as HTML, CSS, AJAX. etc
ASP.NET supports three different development models:
Web Pages, MVC (Model View Controller), and Web Forms.
For More Details.
Visit: http://www.cyberlabzone.com
Yahoo! Application Platform Technical Deep DiveTony Ng
Learn how to build applications for a platform that can reach 330M+ worldwide users! This session gives a technical overview of the Yahoo! Application Platform (YAP), which enables third-party applications to be embedded within popular Yahoo! destinations such as My Yahoo! and the Yahoo! home page. The session will cover key features of YAP, including Yahoo Markup Language (YML), Caja, Open Social, image cache and application editor. Next the talk will explain how to build an application for this platform as well as best practices to deliver great user experience from your application.
Integrate jQuery PHP MySQL project to JOOMLA web siteHock Leng PUAH
After completing your jQuery, PHP, MySQL project, integrating the project into an existing JOOMLA website can be done using one of its vast extension - Sourcerer.
The document discusses adding user management functionality to a Node.js application called QAVideos. It involves the following steps:
1. Creating the application using StrongLoop's Loopback framework.
2. Adding Angular support to handle data binding between the client and server.
3. Adding signup and login functionality including signup and success pages, a signup controller, and an authentication service to register new users.
Android Workshop for NTU. A getting started guide to android application development.
UPDATE (Oct 2013): An updated slide at http://samwize.com/2013/10/13/android-workshop-2013/
This document provides instructions for creating a simple tasklist application using ASP.NET MVC. It describes creating the controller, views, database, and model. The controller contains actions for listing, creating, and completing tasks. Views are created for displaying the task list and creating new tasks. A database with a Tasks table is set up using LINQ to SQL. Logic is added to the controller actions to retrieve and save tasks from the database. The task list view is modified to display tasks from the model.
This is the workshop presentation material for the Point-And-Click App Building Hands-On Workshop (HOW) being presented at Dreamforce 2015 in the DevZone. This content pairs with the "Suggestion Box App" project live in Trailhead
The document discusses techniques for handling events, detecting browser capabilities, accessing page headers, and handling errors in ASP.NET web applications. It covers default and non-default events, event wireups, centralized event handlers, retrieving properties from the Request.Browser object, modifying the Page.Header properties, and using page-level and application-level error handling. The objectives are to implement these advanced techniques for events, browser detection, page headers, and error handling in ASP.NET.
The document summarizes updates to the Facebook platform in July 2011, including:
1. Improved handling of apps with large numbers of users and faster search.
2. A new Send button that allows sending messages to friends, posting to groups, or sending emails.
3. Feedback on apps to address anti-spam measures and show where apps stand with News Feed.
4. Enhancements to the Graph API for managing pages, tabs, settings and access tokens.
This document provides steps to create a Chrome extension that allows users to validate HTML pages with one click. It involves creating a manifest file, adding an icon, deploying the extension to Chrome, and adding popup.html and popup.js files. The popup.js uses the Chrome tabs API to get the current tab's URL and open it in the W3C validator when the user clicks the extension's button. The document also provides tips for debugging, packaging, and publishing the extension in the Chrome Web Store.
The document provides code snippets to create four different layouts in Android: linear layout, relative layout, table layout, and grid view layout. For each layout type, it includes the XML code to define the layout structure and Java code in the MainActivity class to display the layout.
Introduction to Facebook JavaScript & Python SDKColin Su
This document provides an outline for a tutorial on the facebook JavaScript SDK. It introduces the SDK and covers the following topics:
- An overview of the Facebook developer site, apps, components, and authentication process
- Technical details of the SDK, including how to use the Graph API, callbacks, and RESTful API model
- Facebook developer tools like the Graph API explorer and access token tool
- A code lab section that provides examples of integrating the SDK, authenticating users, accessing the Graph API, and using social plugins and dialogs
The document provides step-by-step instructions for creating a custom fault in an Oracle SOA BPEL process. When student marks are input that are less than 0 or greater than 100, a custom "InvalidStudentMarksFault" fault will be thrown. The process defines the fault message in the WSDL, adds fault handling logic, and invokes another process to test catching the custom remote fault. The instructions aim to demonstrate how to define and handle custom faults across multiple services in an SOA composite.
The document discusses various topics related to web programming using Visual Basic and ASP.NET, including the client-server model, creating and laying out web forms, adding controls and images, validating user input, maintaining state, and some common web acronyms.
The document discusses how to use the login control in Visual Studio 2005 to add login functionality to web applications. It describes how the login control was added to the Visual Studio 2005 toolbox. It provides steps to drag and drop the login control onto a page in the designer and then handle the login authentication code by adding an event handler. It also describes properties like FailureText to customize error messages and DestinationPageUrl to redirect users after successful login.
1) The document provides instructions for an iLab assignment to create a login form that validates users and assigns a security level session variable.
2) Based on the security level, certain functions and links will be displayed or hidden on an existing form.
3) Students will also create a "Manage Users" page for adding, removing, and updating users in the system.
1) The document outlines the steps to create a child portal in DotNetNuke, including selecting the "child" radio button when adding a new portal, customizing the home directory, and specifying a partner admin user.
2) It describes installing required modules on pages in the child portal and assigning permissions at both the page and module level.
3) The process also involves binding the new child portal admin user to a partner in the main portal to grant them appropriate permissions.
Static Reference Analysis for GUI Objects in Android SoftwareDacong (Tony) Yan
The popularity of Android software has grown dramatically in the last
few years. It is essential for researchers in programming languages
and compilers to contribute new techniques in this increasingly
important area. Such techniques require a foundation of program
analyses for Android. The target of our work is static object
reference analysis, which models the flow of object references.
Existing reference analyses cannot be applied directly to Android
because the software is component-based and event-driven.
An Android application is driven by a graphical user interface (GUI),
with GUI objects responding to user actions. These objects and the
event handlers associated with them ultimately determine the possible
flow of control and data. We propose the first static analysis to
model GUI-related Android objects, their flow through the application,
and their interactions with each other via the abstractions defined by
the Android platform. A formal semantics for the relevant Android
constructs is developed to provide a solid foundation for this and
other analyses. Next, we propose a constraint-based reference analysis
based on the semantics. The analysis employs a constraint graph to
model the flow of GUI objects, the hierarchical structure of these
objects, and the effects of relevant Android operations. Experimental
evaluation on real-world Android applications strongly suggests that
the analysis achieves high precision with low cost.
The analysis enables static modeling of control/data flow that is
foundational for compiler analyses, instrumentation for
event/interaction profiling, static error checking, security analysis,
test generation, and automated debugging. It provides a key component
to be used by compile-time analysis researchers in the growing area of
Android software.
This document provides a tutorial for using Dojo 1.0 to create a rich internet application. It demonstrates how to set up the development environment, install Dojo, and create a basic application with Dojo widgets like DateTextBox, ComboBox, CheckBox, RadioButton, and Button. Event handling in Dojo is also discussed, noting that event handler methods only receive the Event object as a parameter rather than this and event like standard DOM event handling. The tutorial code is analyzed and additional widgets are added to the sample application.
El documento describe cómo usar el programa Adobe Captivate para grabar un video tutorial y luego publicarlo en un blog. Se abre Captivate, se crea un nuevo proyecto y se graba el video mientras se trabaja en el programa. Luego, el video se sube a SlideShare y se copia el enlace para pegarlo en el blog.
This document outlines an instructor-led workshop on freelancing. The instructor, Karem Elzftawy, is an electronics engineer and IOT developer who is licensed by TEDxDamanhur. The workshop will introduce participants to freelancing by explaining what it is, who can freelance, and how to get started. Participants will learn how big freelancing has become as a field, how to build their freelancing profile, find jobs, and get paid in Egypt. The workshop will provide references and homework assignments to help participants pursue freelancing and will offer ongoing support from the instructor.
Windermere Science Project stakeholder meeting presentations.
Jones on changes to the lake physical structure with increasing temperature and the consequences for algal biomass
Integrate jQuery PHP MySQL project to JOOMLA web siteHock Leng PUAH
After completing your jQuery, PHP, MySQL project, integrating the project into an existing JOOMLA website can be done using one of its vast extension - Sourcerer.
The document discusses adding user management functionality to a Node.js application called QAVideos. It involves the following steps:
1. Creating the application using StrongLoop's Loopback framework.
2. Adding Angular support to handle data binding between the client and server.
3. Adding signup and login functionality including signup and success pages, a signup controller, and an authentication service to register new users.
Android Workshop for NTU. A getting started guide to android application development.
UPDATE (Oct 2013): An updated slide at http://samwize.com/2013/10/13/android-workshop-2013/
This document provides instructions for creating a simple tasklist application using ASP.NET MVC. It describes creating the controller, views, database, and model. The controller contains actions for listing, creating, and completing tasks. Views are created for displaying the task list and creating new tasks. A database with a Tasks table is set up using LINQ to SQL. Logic is added to the controller actions to retrieve and save tasks from the database. The task list view is modified to display tasks from the model.
This is the workshop presentation material for the Point-And-Click App Building Hands-On Workshop (HOW) being presented at Dreamforce 2015 in the DevZone. This content pairs with the "Suggestion Box App" project live in Trailhead
The document discusses techniques for handling events, detecting browser capabilities, accessing page headers, and handling errors in ASP.NET web applications. It covers default and non-default events, event wireups, centralized event handlers, retrieving properties from the Request.Browser object, modifying the Page.Header properties, and using page-level and application-level error handling. The objectives are to implement these advanced techniques for events, browser detection, page headers, and error handling in ASP.NET.
The document summarizes updates to the Facebook platform in July 2011, including:
1. Improved handling of apps with large numbers of users and faster search.
2. A new Send button that allows sending messages to friends, posting to groups, or sending emails.
3. Feedback on apps to address anti-spam measures and show where apps stand with News Feed.
4. Enhancements to the Graph API for managing pages, tabs, settings and access tokens.
This document provides steps to create a Chrome extension that allows users to validate HTML pages with one click. It involves creating a manifest file, adding an icon, deploying the extension to Chrome, and adding popup.html and popup.js files. The popup.js uses the Chrome tabs API to get the current tab's URL and open it in the W3C validator when the user clicks the extension's button. The document also provides tips for debugging, packaging, and publishing the extension in the Chrome Web Store.
The document provides code snippets to create four different layouts in Android: linear layout, relative layout, table layout, and grid view layout. For each layout type, it includes the XML code to define the layout structure and Java code in the MainActivity class to display the layout.
Introduction to Facebook JavaScript & Python SDKColin Su
This document provides an outline for a tutorial on the facebook JavaScript SDK. It introduces the SDK and covers the following topics:
- An overview of the Facebook developer site, apps, components, and authentication process
- Technical details of the SDK, including how to use the Graph API, callbacks, and RESTful API model
- Facebook developer tools like the Graph API explorer and access token tool
- A code lab section that provides examples of integrating the SDK, authenticating users, accessing the Graph API, and using social plugins and dialogs
The document provides step-by-step instructions for creating a custom fault in an Oracle SOA BPEL process. When student marks are input that are less than 0 or greater than 100, a custom "InvalidStudentMarksFault" fault will be thrown. The process defines the fault message in the WSDL, adds fault handling logic, and invokes another process to test catching the custom remote fault. The instructions aim to demonstrate how to define and handle custom faults across multiple services in an SOA composite.
The document discusses various topics related to web programming using Visual Basic and ASP.NET, including the client-server model, creating and laying out web forms, adding controls and images, validating user input, maintaining state, and some common web acronyms.
The document discusses how to use the login control in Visual Studio 2005 to add login functionality to web applications. It describes how the login control was added to the Visual Studio 2005 toolbox. It provides steps to drag and drop the login control onto a page in the designer and then handle the login authentication code by adding an event handler. It also describes properties like FailureText to customize error messages and DestinationPageUrl to redirect users after successful login.
1) The document provides instructions for an iLab assignment to create a login form that validates users and assigns a security level session variable.
2) Based on the security level, certain functions and links will be displayed or hidden on an existing form.
3) Students will also create a "Manage Users" page for adding, removing, and updating users in the system.
1) The document outlines the steps to create a child portal in DotNetNuke, including selecting the "child" radio button when adding a new portal, customizing the home directory, and specifying a partner admin user.
2) It describes installing required modules on pages in the child portal and assigning permissions at both the page and module level.
3) The process also involves binding the new child portal admin user to a partner in the main portal to grant them appropriate permissions.
Static Reference Analysis for GUI Objects in Android SoftwareDacong (Tony) Yan
The popularity of Android software has grown dramatically in the last
few years. It is essential for researchers in programming languages
and compilers to contribute new techniques in this increasingly
important area. Such techniques require a foundation of program
analyses for Android. The target of our work is static object
reference analysis, which models the flow of object references.
Existing reference analyses cannot be applied directly to Android
because the software is component-based and event-driven.
An Android application is driven by a graphical user interface (GUI),
with GUI objects responding to user actions. These objects and the
event handlers associated with them ultimately determine the possible
flow of control and data. We propose the first static analysis to
model GUI-related Android objects, their flow through the application,
and their interactions with each other via the abstractions defined by
the Android platform. A formal semantics for the relevant Android
constructs is developed to provide a solid foundation for this and
other analyses. Next, we propose a constraint-based reference analysis
based on the semantics. The analysis employs a constraint graph to
model the flow of GUI objects, the hierarchical structure of these
objects, and the effects of relevant Android operations. Experimental
evaluation on real-world Android applications strongly suggests that
the analysis achieves high precision with low cost.
The analysis enables static modeling of control/data flow that is
foundational for compiler analyses, instrumentation for
event/interaction profiling, static error checking, security analysis,
test generation, and automated debugging. It provides a key component
to be used by compile-time analysis researchers in the growing area of
Android software.
This document provides a tutorial for using Dojo 1.0 to create a rich internet application. It demonstrates how to set up the development environment, install Dojo, and create a basic application with Dojo widgets like DateTextBox, ComboBox, CheckBox, RadioButton, and Button. Event handling in Dojo is also discussed, noting that event handler methods only receive the Event object as a parameter rather than this and event like standard DOM event handling. The tutorial code is analyzed and additional widgets are added to the sample application.
El documento describe cómo usar el programa Adobe Captivate para grabar un video tutorial y luego publicarlo en un blog. Se abre Captivate, se crea un nuevo proyecto y se graba el video mientras se trabaja en el programa. Luego, el video se sube a SlideShare y se copia el enlace para pegarlo en el blog.
This document outlines an instructor-led workshop on freelancing. The instructor, Karem Elzftawy, is an electronics engineer and IOT developer who is licensed by TEDxDamanhur. The workshop will introduce participants to freelancing by explaining what it is, who can freelance, and how to get started. Participants will learn how big freelancing has become as a field, how to build their freelancing profile, find jobs, and get paid in Egypt. The workshop will provide references and homework assignments to help participants pursue freelancing and will offer ongoing support from the instructor.
Windermere Science Project stakeholder meeting presentations.
Jones on changes to the lake physical structure with increasing temperature and the consequences for algal biomass
El documento compara un chárter de proyecto y una declaración de alcance, explicando que un chárter proporciona la autorización formal para el proyecto mientras que una declaración de alcance contiene los requisitos validados y sirve como punto de partida para la planificación del proyecto, siendo el administrador del proyecto responsable de este último documento.
The document discusses the growing trend of enterprise mobility. It notes that the global enterprise mobility market is expected to increase from $5.5 billion in 2011 to $7.6 billion by 2016, with EMEA leading the growth. Industries like automotive, healthcare, entertainment, retail, education, manufacturing and financial services are adopting mobility solutions. The benefits to enterprises include reduced costs, increased productivity and efficiency. Key focus areas for enterprise mobility include sales force automation, business intelligence, cloud storage, security and collaboration.
Este documento propone utilizar Google Calendar para mejorar la comunicación entre maestros, padres y alumnos de un grupo de 4o de primaria. El calendario se publicaría en el blog del grupo para que los padres y alumnos puedan ver eventos escolares como exámenes, fechas límite, excursiones. Esto permitiría a los padres involucrarse más y saber de tutorías u otros eventos. El maestro explicaría a los padres cómo acceder y usar el calendario al inicio del curso escolar.
Este documento presenta los principios generales de la medicina natural como terapia alternativa. Los principios incluyen que la salud del prójimo debe prevalecer sobre intereses económicos, los profesionales deben conocer sus limitaciones y referir casos fuera de su alcance, y que el cuerpo, mente y espíritu forman una unidad inseparable en el tratamiento holístico considerando factores físicos, emocionales y ambientales. También introduce conceptos como la fitoterapia, plantas medicinales y sus principios activos.
A empresa de tecnologia anunciou um novo smartphone com câmera aprimorada, processador mais rápido e bateria de maior duração. O dispositivo também possui tela maior e armazenamento expansível, com preço sugerido a partir de $799. Analistas esperam que o aparelho ajude a empresa a aumentar sua participação no competitivo mercado de smartphones.
El documento describe una máquina llamada PuriPet que alimenta automáticamente a las mascotas a la hora programada. Existen versiones manual y digital de PuriPet. La versión digital incluye una pantalla para programar la hora y cantidad de alimento, mientras que la versión manual tiene solo un botón. PuriPet soluciona el problema de los dueños que no tienen tiempo suficiente para alimentar a sus mascotas a horas fijas. El documento explica que el producto se distribuirá en varias ciudades colombianas y se financiará a través
Comment intégrer un questionnaire intelligent sur mon site webMyFeelBack
Découvrez toutes les clés pour comprendre et être autonome dans l’intégration d’un questionnaire intelligent sur votre site web.
Allez plus loin avec les explications et commentaires en vidéo d’Aurore Beugniez, co-fondatrice de MyFeelBack : http://hubs.ly/H03Mfml0
Q : Are you really excited to learn how to develop an n-Tier arch web application using Angularjs, Asp.Net Web API, jQuery, Bootstrap, C#.Net, Entity Framework Code First and MS SQL Server?
A: Then you are at right place and you are going to learn it here with me from scratch..
In this course we are going to learn how to break requirements into objects and find relation among them. We will then learn coding models out of this objects and relationships. Moving forward we will also see how to design arch. of the project and implement various layers.
We are going to learn implementation of business object layer using POCO and data access layer using repository design pattern and Entity Framework Code First. We will use C#.Net to implement our business logic layer and wrap it up with Asp.Net Web API so that it can be consumed by any client. We are also going to secure our web apis.
For user interface we will see Angularjs, jQuery and Bootstrap. We will learn how bootstrap makes our application responsive.We will also see how to implement custom sorting and paging. Moving ahead you will learn forms validations and business rules validations as well. We will also learn how to publish it on web.
This project is an EIS - Employee Information System
This Web-based information system is designed to allow you to view and maintain your employee information throughout the year. You should use this system to maintain your complete information on employee record.
This is an n-tier Single Page Application (SPA) built on .Net platform using various technologies for various layers as given below
User Interface: AngularJS1 and BootStrap
Service Layer: Asp.Net Web API
Business Logic Layer: C#.Net
Data Access Layer: Entity Framework Code First
Back End: MS SQL Server 2016
Tools: Visual Studio 2015 and SQL Server Management Studio 2016
What are the requirements?(Should be good at)
MS Sql Server Any version
Entity Framework 6
Asp.Net Web APIs 2
C#.Net
AngularJS
Visual Studio 2015 or above
What am I going to get from this course?
understand how to break requirements in to objects
create entities out of objects
implement data access layer using entity framework code first approach with repository pattern
manage data migrations in entity framework
implement business logic layer using c#net
create service layer using ASP.Net web apis
create UI using angularjs, bootstrap and jquery
implement validations both client side and server side
implement authentication and authorization both on client side and sever side
What is the target audience?
This course is for the web developers who want to learn layered architecture in SPA
Who wants to upgrade their profile with another real time SPA
This course is for the web developers who want to learn layered architect.
Angular 11 google social login or sign in tutorial using angularx social-loginKaty Slemon
Here’s a step-by-step guideline on how to integrate Google Social Login or Sign In in Angular 11 Application with Example. Learn and code with this tutorial
Mobile 2.0 Open Ideas WorkShop: Building Social Media Enabled Apps on AndroidAlberto Ruibal
We provide some examples on how to integrate social media on Android apps, from the simple “Share” button to more complex integrations like using Twitter, LinkedIn or Facebook APIs, including logging-in with social media.
As an example we developed a open source “Social Media Demo” application with all the examples in this presentation.
Solid foundations support great structures. Without a solid tracking foundation and smooth user experience, any marketing is suboptimal. Learn how to implement best in class website and app tracking, provide a seamless mobile app experience, and get started using their API.
Google external login setup in ASP .NET Core
Sundar Neupane
May 23, 2021
Google external login setup in ASP .NET Core
This article demonstrates how to build a .NET Core 5 that enables users to sign in using OAuth with credentials from external authentication providers. This tutorial shows you how to enable users to sign in with their Google account using the .NET Core 5. Users logged in using their existing credentials from third-party applications, like as Googe, Facebook, Twitter, Github, Microsfot, and so on. In this article, I am going authentication of the .NET 5 app using a Google account.
ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern, cloud-based, Internet-connected applications. It includes support for hosting on Windows, Linux, and macOS, and can be used to build web applications, IoT applications, and mobile backends.
To implement Google authentication in an ASP.NET Core application, you can use Google.AspNetCore.Authentication.Google package, which provides Google OAuth2 authentication support for ASP.NET Core. Here is an example of how to configure Google authentication in an ASP.NET Core app:
To set up Google external login in ASP.NET Core, you need to perform the following steps:
Register your application with Google by following the instructions here: https://developers.google.com/identity/sign-in/web/sign-in#before_you_begin
Make a note of the client ID and client secret that Google provides for your application.
In your ASP.NET Core application, install the following NuGet packages:
Microsoft.AspNetCore.Authentication.Google
Microsoft.AspNetCore.Authentication.OAuth
In the ConfigureServices method of your application's Startup class, add the following code to configure the Google authentication options:
services.AddAuthentication().AddGoogle(options =>
{
options.ClientId = "<your client id>";
options.ClientSecret = "<your client secret>";
});
In the Configure method of your Startup class, add the following code to enable the authentication middleware:
app.UseAuthentication();
In your login page or login partial view, add a link or button that the user can click to initiate the login process with Google. The link or button should point to the following URL:
/Account/ExternalLogin?provider=Google
When the user clicks the link or button, they will be redirected to Google to sign in and grant permission to your application. If the authentication is successful, the user will be redirected back to your application and logged in.
That's it! Your application is now set up to allow users to log in with their Google account. You can customize the authentication process further by setting additional options in the GoogleAuthenticationOptions class. For more information, you can refer to the documentation
Download source code: https://findandsolve.com/source-code/code-how-to-add-googlle-authentication-to-dot-net-5-core
This document provides instructions for setting up user authentication for a Rails application using Devise and OAuth with Facebook. It includes steps for installing Devise, generating a User model, configuring routes and callbacks, setting up the Facebook application, and connecting a user's Facebook account to authenticate and sign in.
How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...Yusuke Takahashi, PhD
This document is a quick start guide for AppSocially, a platform that helps app developers acquire more users through referrals. It describes how AppSocially works by allowing developers to implement a referral mechanism in their app using AppSocially's SDK. The SDK includes tools for sharing, tracking referrals, and optimizing the referral process. The guide also provides instructions on running a sample app and implementing AppSocially in your own app.
Cis407 a ilab 6 web application development devry universitylhkslkdh89009
This document provides instructions for an iLab assignment to create a login form for a web application. Students are asked to:
1. Create a login form that validates username and password and assigns a session variable for the user's security level.
2. Restrict access to certain functions on an existing form based on the security level.
3. Add a user management form to allow adding, editing, and removing users, and testing the login and security functionality.
The assignment involves adding authentication code, restricting page elements based on roles, and creating a user database interface form. Students are provided detailed steps and advised to add comments to their code.
The document provides an overview of the Facebook JavaScript SDK. It discusses loading and initializing the SDK, using it to check login status and perform login, subscribing to events, and making API calls to Facebook for user data and to post to Facebook. The SDK enables using Facebook features like the Like button and Login in websites and accessing the Graph API and FQL from JavaScript.
This document explains how to implement Facebook single sign-on (SSO) login for a Mendix application. It involves creating a Facebook developer app to enable the OAuth login functionality. Several Mendix marketplace modules need to be installed to support OpenID Connect for SSO. The Facebook developer app needs to be configured and reviewed before integrating the login button in Mendix. Pages and roles must be set up to allow anonymous users to access the login page and authenticated users to access protected pages. Testing confirms that users can successfully login with their Facebook account and access authorized content.
This document outlines the steps to create a basic login and logout application using JSF, a managed bean, HTTP session management, and an Oracle database. The key steps include:
1. Creating a "Users" table in an Oracle database to store user credentials
2. Setting up a dynamic web project in Eclipse with Maven conversion
3. Developing JSF pages for the login and admin views
4. Creating a managed bean and DAO class to validate credentials against the database
5. Adding session management and authorization filtering to enable secure access to authenticated users.
This document discusses WordPress plugin development. It begins by explaining that plugins extend WordPress functionality by offering custom functions. It then provides steps to create a basic "Hello World" plugin, including creating plugin files and folders, adding code to identify it as a plugin, and adding a function to output text. It discusses using hooks to integrate the plugin with WordPress events. Finally, it describes adding an admin settings page so users can configure the plugin by saving options to the database.
This document provides steps to create a custom cell in an iPhone application using Objective-C and Xcode. The steps include: creating a new project, adding a class to display the custom cell, initializing an array with data, implementing table view data source methods to populate the cell, creating a custom cell class with a label, connecting the label in a xib file, and loading the custom cell in the table view. Running the application will display the custom cell with label populated from the data array.
The document provides instructions for creating a content-managed Facebook app, including obtaining a Facebook developer API key, setting up a Facebook page, integrating the API key and page into a content management system like DotNetNuke to allow managing Facebook app content, and additional options for features like likes, comments, and advanced OpenGraph implementation. Setting up the app involves configuring settings, designing page templates to Facebook dimensions, and inserting meta tags to identify the app and page.
The document discusses the Yii PHP framework. It provides an overview of Yii's fundamentals including its use of the MVC pattern, entry scripts, debug mode, applications, controllers, actions, filters, models, views, layouts, and widgets. It also summarizes how to create a basic Yii application, the code generation tools, and some key features such as database access, forms/validation, authentication, caching, and automatic code generation.
This document discusses iPhone application development using iOS programming and the Facebook API. It provides an overview of key concepts in iOS apps like view controllers and their lifecycle. It then reviews the general process for building iPhone apps with MVC. Next, it covers the Facebook iOS SDK and methods for authentication, dialogs and requests. It outlines the steps for creating a Facebook iOS app, including registering the app, installing the SDK, implementing single sign-on and requesting additional permissions. It also discusses adding Graph API calls and social channels to an app.
1) Firebase Cloud Messaging allows sending push notifications to Flutter apps. The document outlines steps to integrate FCM with a Flutter project like adding configuration files and dependencies.
2) It describes implementing notification handling code and a simple UI to display notifications. The onMessage and onResume callbacks are used to update the UI when a notification is received.
3) Sending test notifications is demonstrated using the Firebase console. Notifications can be scheduled with custom data and UI elements like title and text.
What is an RPA CoE? Session 1 – CoE VisionDianaGray10
In the first session, we will review the organization's vision and how this has an impact on the COE Structure.
Topics covered:
• The role of a steering committee
• How do the organization’s priorities determine CoE Structure?
Speaker:
Chris Bolin, Senior Intelligent Automation Architect Anika Systems
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor IvaniukFwdays
At this talk we will discuss DDoS protection tools and best practices, discuss network architectures and what AWS has to offer. Also, we will look into one of the largest DDoS attacks on Ukrainian infrastructure that happened in February 2022. We'll see, what techniques helped to keep the web resources available for Ukrainians and how AWS improved DDoS protection for all customers based on Ukraine experience
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving
What began over 115 years ago as a supplier of precision gauges to the automotive industry has evolved into being an industry leader in the manufacture of product branding, automotive cockpit trim and decorative appliance trim. Value-added services include in-house Design, Engineering, Program Management, Test Lab and Tool Shops.
Discover the Unseen: Tailored Recommendation of Unwatched ContentScyllaDB
The session shares how JioCinema approaches ""watch discounting."" This capability ensures that if a user watched a certain amount of a show/movie, the platform no longer recommends that particular content to the user. Flawless operation of this feature promotes the discover of new content, improving the overall user experience.
JioCinema is an Indian over-the-top media streaming service owned by Viacom18.
In our second session, we shall learn all about the main features and fundamentals of UiPath Studio that enable us to use the building blocks for any automation project.
📕 Detailed agenda:
Variables and Datatypes
Workflow Layouts
Arguments
Control Flows and Loops
Conditional Statements
💻 Extra training through UiPath Academy:
Variables, Constants, and Arguments in Studio
Control Flow in Studio
Conversational agents, or chatbots, are increasingly used to access all sorts of services using natural language. While open-domain chatbots - like ChatGPT - can converse on any topic, task-oriented chatbots - the focus of this paper - are designed for specific tasks, like booking a flight, obtaining customer support, or setting an appointment. Like any other software, task-oriented chatbots need to be properly tested, usually by defining and executing test scenarios (i.e., sequences of user-chatbot interactions). However, there is currently a lack of methods to quantify the completeness and strength of such test scenarios, which can lead to low-quality tests, and hence to buggy chatbots.
To fill this gap, we propose adapting mutation testing (MuT) for task-oriented chatbots. To this end, we introduce a set of mutation operators that emulate faults in chatbot designs, an architecture that enables MuT on chatbots built using heterogeneous technologies, and a practical realisation as an Eclipse plugin. Moreover, we evaluate the applicability, effectiveness and efficiency of our approach on open-source chatbots, with promising results.
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...Jason Yip
The typical problem in product engineering is not bad strategy, so much as “no strategy”. This leads to confusion, lack of motivation, and incoherent action. The next time you look for a strategy and find an empty space, instead of waiting for it to be filled, I will show you how to fill it in yourself. If you’re wrong, it forces a correction. If you’re right, it helps create focus. I’ll share how I’ve approached this in the past, both what works and lessons for what didn’t work so well.
From Natural Language to Structured Solr Queries using LLMsSease
This talk draws on experimentation to enable AI applications with Solr. One important use case is to use AI for better accessibility and discoverability of the data: while User eXperience techniques, lexical search improvements, and data harmonization can take organizations to a good level of accessibility, a structural (or “cognitive” gap) remains between the data user needs and the data producer constraints.
That is where AI – and most importantly, Natural Language Processing and Large Language Model techniques – could make a difference. This natural language, conversational engine could facilitate access and usage of the data leveraging the semantics of any data source.
The objective of the presentation is to propose a technical approach and a way forward to achieve this goal.
The key concept is to enable users to express their search queries in natural language, which the LLM then enriches, interprets, and translates into structured queries based on the Solr index’s metadata.
This approach leverages the LLM’s ability to understand the nuances of natural language and the structure of documents within Apache Solr.
The LLM acts as an intermediary agent, offering a transparent experience to users automatically and potentially uncovering relevant documents that conventional search methods might overlook. The presentation will include the results of this experimental work, lessons learned, best practices, and the scope of future work that should improve the approach and make it production-ready.
This talk will cover ScyllaDB Architecture from the cluster-level view and zoom in on data distribution and internal node architecture. In the process, we will learn the secret sauce used to get ScyllaDB's high availability and superior performance. We will also touch on the upcoming changes to ScyllaDB architecture, moving to strongly consistent metadata and tablets.
Session 1 - Intro to Robotic Process Automation.pdfUiPathCommunity
👉 Check out our full 'Africa Series - Automation Student Developers (EN)' page to register for the full program:
https://bit.ly/Automation_Student_Kickstart
In this session, we shall introduce you to the world of automation, the UiPath Platform, and guide you on how to install and setup UiPath Studio on your Windows PC.
📕 Detailed agenda:
What is RPA? Benefits of RPA?
RPA Applications
The UiPath End-to-End Automation Platform
UiPath Studio CE Installation and Setup
💻 Extra training through UiPath Academy:
Introduction to Automation
UiPath Business Automation Platform
Explore automation development with UiPath Studio
👉 Register here for our upcoming Session 2 on June 20: Introduction to UiPath Studio Fundamentals: https://community.uipath.com/events/details/uipath-lagos-presents-session-2-introduction-to-uipath-studio-fundamentals/
Must Know Postgres Extension for DBA and Developer during MigrationMydbops
Mydbops Opensource Database Meetup 16
Topic: Must-Know PostgreSQL Extensions for Developers and DBAs During Migration
Speaker: Deepak Mahto, Founder of DataCloudGaze Consulting
Date & Time: 8th June | 10 AM - 1 PM IST
Venue: Bangalore International Centre, Bangalore
Abstract: Discover how PostgreSQL extensions can be your secret weapon! This talk explores how key extensions enhance database capabilities and streamline the migration process for users moving from other relational databases like Oracle.
Key Takeaways:
* Learn about crucial extensions like oracle_fdw, pgtt, and pg_audit that ease migration complexities.
* Gain valuable strategies for implementing these extensions in PostgreSQL to achieve license freedom.
* Discover how these key extensions can empower both developers and DBAs during the migration process.
* Don't miss this chance to gain practical knowledge from an industry expert and stay updated on the latest open-source database trends.
Mydbops Managed Services specializes in taking the pain out of database management while optimizing performance. Since 2015, we have been providing top-notch support and assistance for the top three open-source databases: MySQL, MongoDB, and PostgreSQL.
Our team offers a wide range of services, including assistance, support, consulting, 24/7 operations, and expertise in all relevant technologies. We help organizations improve their database's performance, scalability, efficiency, and availability.
Contact us: info@mydbops.com
Visit: https://www.mydbops.com/
Follow us on LinkedIn: https://in.linkedin.com/company/mydbops
For more details and updates, please follow up the below links.
Meetup Page : https://www.meetup.com/mydbops-databa...
Twitter: https://twitter.com/mydbopsofficial
Blogs: https://www.mydbops.com/blog/
Facebook(Meta): https://www.facebook.com/mydbops/
How information systems are built or acquired puts information, which is what they should be about, in a secondary place. Our language adapted accordingly, and we no longer talk about information systems but applications. Applications evolved in a way to break data into diverse fragments, tightly coupled with applications and expensive to integrate. The result is technical debt, which is re-paid by taking even bigger "loans", resulting in an ever-increasing technical debt. Software engineering and procurement practices work in sync with market forces to maintain this trend. This talk demonstrates how natural this situation is. The question is: can something be done to reverse the trend?
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Keywords: AI, Containeres, Kubernetes, Cloud Native
Event Link: https://meine.doag.org/events/cloudland/2024/agenda/#agendaId.4211
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillLizaNolte
HERE IS YOUR WEBINAR CONTENT! 'Mastering Customer Journey Management with Dr. Graham Hill'. We hope you find the webinar recording both insightful and enjoyable.
In this webinar, we explored essential aspects of Customer Journey Management and personalization. Here’s a summary of the key insights and topics discussed:
Key Takeaways:
Understanding the Customer Journey: Dr. Hill emphasized the importance of mapping and understanding the complete customer journey to identify touchpoints and opportunities for improvement.
Personalization Strategies: We discussed how to leverage data and insights to create personalized experiences that resonate with customers.
Technology Integration: Insights were shared on how inQuba’s advanced technology can streamline customer interactions and drive operational efficiency.
QA or the Highway - Component Testing: Bridging the gap between frontend appl...zjhamm304
These are the slides for the presentation, "Component Testing: Bridging the gap between frontend applications" that was presented at QA or the Highway 2024 in Columbus, OH by Zachary Hamm.
7. Step 2: Run the sample
Basic samples
• HelloFacebookSample: combines use of FBLoginView, FBProfilePictureView,
FBFriendsPickerViewController, FBPlacePickerViewController, and FBRequest for
profile access, status updates and photo uploading.
• ProfilePictureSample: demonstrates non-logged-in usage of the
FBProfilePictureView control.
• FriendPickerSample: demonstrates usage of the native multi-friend selector control
to choose amongst the logged-in users' friends.
• PlacePickerSample: demonstrates logged-in usage of the FBPlacePickerView
control.
More in-depth single feature samples
• SessionLoginSample: demonstrates detailed login flow via FBSession.
• JustRequestSample: demonstrates logged in user making a request of Facebook via
FBRequest and FBRequestConnection, including batched requests.
• BooleanOGSample: demonstrates publishing an Open Graph custom action type.
More complete and special-case samples
• Scrumptious: integrated sample app demonstrating the use of login, requests, Place
Picker, Friend Picker, Picture Upload, and Open Graph Publishing.
• SwitchUserSample: demonstrates an approach to allow switching logins between
multiple users - for example, on a shared family iPad.
11. Step 4: Start new X-code Project
Add the Facebook SDK for iOS Framework by dragging the FacebookSDK.frameworkfolder
from the SDK installation folder into the Frameworks section of your Project Navigator.
12. Step 4: Start new X-code Project
Add the Facebook SDK for iOS resource bundle by dragging
theFacebookSDKResources.bundle file from theFacebookSDK.framework/
Resources folder into the Frameworks section of your Project Navigator.
13. Step 4: Start new X-code Project
Add the ''-lsqlite3.0'' SQL library to the list of build dependencies
14. Step 4: Start new X-code Project
Finally, you need to place the Facebook app ID in two places in your application's
main.plist file. Create a key called FacebookAppID with a string value, and add
the app ID there:
250959118344050
15. Step 4: Start new X-code Project
Also, create an array key called URL types with a single array sub-item called URL
Schemes. Give this a single item with your app ID prefixed with fb:
This is used to ensure the application will receive the callback URL of the web-based OAuth flow.
16. Step 5: FACEBOOK Login & Authenticate
FBsession 객체 : login & Authorize manage
• sessionOpenWithPermissions:completionHandler:
함수를 호출하여 퍼미션를 선언하고 세션인증을 받을 콜백 핸들러를 제공
한다.
• Facebook App으로부터 받을 핸들러 구성
• login or error 에대한 콜백핸들러 구현
MyAppViewController : 로그인 후
FBLoginViewController : 로그인 전
17. Step 5: FACEBOOK Login & Authenticate
New File > Object-c class > FBLoginViewController
xib 파일에서 Button & Activity Indicator 추가
18. Step 5: FACEBOOK Login & Authenticate
한번 로그인 성공하고 나면 MYAppViewController 를 보여줄 것이다.
앱이 실행되면 먼저 저장되어있는 session를 체크하여 로그인/로그아웃 화면을 선택
한다.
실질적인 메인화면은 MyAppviewController 가 될것이며
FBLoginViewConroller는 필요할때만 모달로 나타날 것이다.
1. AppDelegate.m 파일에 해더 추가
#import <FacebookSDK/FacebookSDK.h>
2. AppDelegate.m 파일에 FBLoginViewController 파일추가
#import “FBLoginViewController“
19. Step 5: FACEBOOK Login & Authenticate
3.로그인뷰가 모달로 보여질것임으로,,
MyAppViewController needs to be part of a UINavigationController.
AppDelegate.h 파일에 new navigation controller 선언
@interface MyAppDelegate ()
@property (strong, nonatomic)
UINavigationController* navController;
@end
4. AppDelegate.m 파일에 Synthesize this new property
@synthesize navController = _navController;
20. Step 5: FACEBOOK Login & Authenticate
5. AppDelegate.h 파일에 생성시 기본으로 만들어진
@property (strong, nonatomic) MyAppViewController *viewController; 를
@property (strong, nonatomic) MyAppViewController *mainViewController;
로 고친다
6. AppDelegate.m 파일에
modify the synthesized property to have the new name by changing:
@synthesize mainViewController = _mainViewController;
22. Step 5: FACEBOOK Login & Authenticate
9. application:didFinishLaunchingWithOptions: method, change this code:
FBSession을 채크하여 로그인화면 보여줄것인지 판단한는 함수 추가
// See if we have a valid token for the current state.
if (FBSession.activeSession.state == FBSessionStateCreatedTokenLoaded) {
// To-do, show logged in view
} else {
// No, display the login page.
[self showLoginView];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.mainViewController = [[MyAppViewController alloc] initWithNibName:@"MyAppViewController_iPhone" bundle:nil];
self.navController = [[UINavigationController alloc] initWithRootViewController:self.mainViewController];
self.window.rootViewController = self.navController;
[self.window makeKeyAndVisible];
if (FBSession.activeSession.state == FBSessionStateCreatedTokenLoaded) {
// To-do, show logged in view
} else {
// No, display the login page.
[self showLoginView];
}
return YES;
}
23. Step 5: FACEBOOK Login & Authenticate
10. FBLoginViewController.xib attach an action to the
login button & outlet to the activity indicator IN FBLoginViewController.m
27. Step 5: FACEBOOK Login & Authenticate
13. application:didFinishLaunchingWithOptions: method, change this code:
// See if we have a valid token for the current state.
if (FBSession.activeSession.state == FBSessionStateCreatedTokenLoaded) {
// To-do, show logged in view
[self openSession];
} else {
// No, display the login page.
[self showLoginView];
}
14. App Delegate .h 파일에 함수 선언 추가
- (void)openSession;
29. Step 5: FACEBOOK Login & Authenticate
17. FBLoginViewController.m - (void)loginFailed; 함수 구현
- (void)loginFailed
{
// User switched back to the app without authorizing. Stay here, but
// stop the spinner.
[self.spinner stopAnimating];
}
18. FBLoginViewController.h - (void)loginFailed; 함수 선언
- (void)loginFailed;
31. Step 5: FACEBOOK Login & Authenticate
20. Facebook 에 로그인하는동안 App 이나 safari를 통해 컨트롤을 보내고 인증
받은
후에 session 정보를 받아온다.
이것을 수행하는 (BOOL)application:(UIApplication *)application openURL
함수를 AppDelegate.m 파일에 구현
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation
{
return [FBSession.activeSession handleOpenURL:url];
}
21. Facebook 인증중에 사용자가 폰을종료시켜버릴경우 세션도 종료시켜야 함
으로
applicationDidBecomeActive: delegate 메소드에 다음을 추가한다.
if (FBSession.activeSession.state == FBSessionStateCreatedOpening) {
[FBSession.activeSession close]; // so we close our session and start over
}
32. Step 5: FACEBOOK Login & Authenticate
22. MyAppViewController.m 파일에 해더를 추가
#import <FacebookSDK/FacebookSDK.h>
23. MyAppViewController.m 파일의 viewDidLoad 함수에 추가
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]
initWithTitle:@"Logout"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(logoutButtonWasPressed:)];
24. MyAppViewController.m 파일의 logoutButtonWasPressed 함수에 추가
-(void)logoutButtonWasPressed:(id)sender {
[FBSession.activeSession closeAndClearTokenInformation];
}
33. Step 6: Personalize
displaying the user's profile picture and name when they've authenticated.
1) Facebook SDK FBRequest object
2) activeSession on FBSession has been opened, or else provide an explicit FBSession
instance to the FBRequestcalls.
3) requestForMeWithSession that returns an FBRequestobject
4) The user data will be a strongly typed FBGraphUser object
5) Once you've constructed an FBRequest object, you can initiate the API call by invoking
thestartWithCompletionHandler: method.
View 추가후 class 를 FBProfilePictureView로 셋팅
XIB 객체선택후 ctl + 드레그 to 소스코드
35. Step 6: Personalize
User info Display function구현
- (void)populateUserDetails
{
if (FBSession.activeSession.isOpen) {
[[FBRequest requestForMe] startWithCompletionHandler:
^(FBRequestConnection *connection,
NSDictionary<FBGraphUser> *user,
NSError *error) {
if (!error) {
self.userNameLabel.text = user.name;
self.userProfileImage.profileID = user.id;
}
}];
}
}
이함수가 성공적으로 실행되면
FBProfilePictureView 객체의 Property에 정보를 셋팅한다.
36. Step 6: Personalize
로그인 상태에서 정보를 바로 보여주기위한 function구현
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
if (FBSession.activeSession.isOpen) {
[self populateUserDetails];
}
}
페이지 로딩시 이함수가 실행되면서 사용자정보를 바로 보여준다.
37. Step 6: Personalize
업데이트된 사용자 정보를 어느때나 보고 싶다면 Active Session이 바뀔때마다
NSNotificationCenter를 notified하여 제공할수 있다.
1.AppDelegate.h 파일에 다음을 선언한다.
extern NSString *const SCSessionStateChangedNotification;
2.AppDelegate.m 파일에 다음을 추가한다.
NSString *const SCSessionStateChangedNotification =
@"com.solab.FaceBookApiFirst:FBSessionStateChangedNotification";
38. Step 6: Personalize
1.AppDelegate.m 파일의 -(void)sessionStateChanged:(FBSession *)session
함수안에 notification을 추가하여 세션변경때마다 호출한다.
- (void)sessionStateChanged:(FBSession *)session
state:(FBSessionState) state
error:(NSError *)error
{
switch (state) {
case FBSessionStateOpen: {
UIViewController *topViewController =
[self.navController topViewController];
if ([[topViewController modalViewController]
isKindOfClass:[FBLoginViewController class]]) {
[topViewController dismissModalViewControllerAnimated:YES];
}
}
break;
case FBSessionStateClosed:
case FBSessionStateClosedLoginFailed:
// Once the user has logged in, we want them to
// be looking at the root view.
[self.navController popToRootViewControllerAnimated:NO];
[FBSession.activeSession closeAndClearTokenInformation];
[self showLoginView];
break;
default:
break;
}
[[NSNotificationCenter defaultCenter] postNotificationName:FBSessionStateChangedNotification
object:session];
if (error) {
UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle:@"Error"
message:error.localizedDescription
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}
}
39. Step 6: Personalize
1.오류 수정
2012-05-18 04:04:11.620 Scrumptious[6548:f803] Unknown class
FBProfilePictureView in Interface Builder file.
add this as the first line in the app
delegate's
application:didFinishLaunchingWit
hOptions:method:
[FBProfilePictureView class];
40. Step 7: Show Friends
1.Facebook 친구들의 정보를 가져오기 위해서는 FBFriendPickerViewController
객체를 이용하면 된다.
2.FBFriendPickerViewController 을 사용하기 위해서는 initWithNibName:bundle:
함수 안에서 객체를 생성한다.
3.FBFriendPickerDelegate notifications 객체를 정의하기위한 델이게이트 메소드
를 셋팅한다.
4.마지막으로 loadData 함수를 호출하면 FBFriendPickerViewController에 친구
정보가 보여진다.
FBFriendPickerDelegate
friendPickerViewControllerSelectionDidChange:
FBFriendPickerViewController
selection property
41. Step 7: Show Friends
1.Set Up the User Interface
Add a Table View object
Style: Grouped;
Show Selection on Touch: NO;
Scrolling Enabled: NO;
• Create an outlet for the Table View object and call it
menuTableView.
• Connect the dataSource outlet to the File's Owner.
• Connect the delegate outlet to the File's Owner.
49. Step 7: Show Friends
1.Display Selected Friends
tableView:didSelectRowAtIndexPath: 함수에 다음 코드를 추가
한다.
self.friendPickerController.delegate = self;
Add the dealloc method
- (void)dealloc
{
_friendPickerController.delegate = nil;
}
51. Step 7: Show Friends
- (void)updateSelections
{
NSString* friendsSubtitle = @"Select friends";
int friendCount = self.selectedFriends.count;
if (friendCount > 2) {
// Just to mix things up, don't always show the first friend.
id<FBGraphUser> randomFriend =
[self.selectedFriends objectAtIndex:arc4random() % friendCount];
friendsSubtitle = [NSString stringWithFormat:@"%@ and %d others",
randomFriend.name,
friendCount - 1];
} else if (friendCount == 2) {
id<FBGraphUser> friend1 = [self.selectedFriends objectAtIndex:0];
id<FBGraphUser> friend2 = [self.selectedFriends objectAtIndex:1];
friendsSubtitle = [NSString stringWithFormat:@"%@ and %@",
friend1.name,
friend2.name];
} else if (friendCount == 1) {
id<FBGraphUser> friend = [self.selectedFriends objectAtIndex:0];
friendsSubtitle = friend.name;
}
[self updateCellIndex:2 withSubtitle:friendsSubtitle];
}
52. Step 7: Show Friends
Implement the FBFriendPickerDelegate method that will be notified of a friend selection
- (void)friendPickerViewControllerSelectionDidChange:
(FBFriendPickerViewController *)friendPicker
{
self.selectedFriends = friendPicker.selection;
[self updateSelections];
}
54. Step 8: Show Nearby Places
1.Facebook 친구들의 정보를 가져오기 위해서는 FBPlacePickerViewController
객체를 이용하면 된다.
2.FBFriendPickerViewController 을 사용하기 위해서는 initWithNibName:bundle:
함수 안에서 객체를 생성한다.
3.FBPlacePickerDelegate notifications 객체를 정의하기위한 델이게이트 메소드
를 셋팅한다.
4.마지막으로 loadData 함수를 호출하면 FBFriendPickerViewController에 친구
정보가 보여진다.
FBPlacePickerDelegate
placePickerViewControllerSelectionDidChange:
FBPlacePickerViewController
selection property
FBGraphPlace
55. Step 8: Show Nearby Places
1.Add the Core Location Framework
56. Step 8: Show Nearby Places
1.Get the User's Current Location
MyAppViewController.m 파일에 추가
@property (strong, nonatomic) CLLocationManager *locationManager;
@synthesize locationManager = _locationManager;
viewDidLoad 함수에 추가
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
self.locationManager.desiredAccuracy =
kCLLocationAccuracyNearestTenMeters;
self.locationManager.distanceFilter = 50;
[self.locationManager startUpdatingLocation];
57. Step 8: Show Nearby Places
1.Get the User's Current Location
MyAppViewController.m 파일에 추가
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
if (!oldLocation ||
(oldLocation.coordinate.latitude != newLocation.coordinate.latitude &&
oldLocation.coordinate.longitude != newLocation.coordinate.longitude)) {
// To-do, add code for triggering view controller update
NSLog(@"Got location: %f, %f",
newLocation.coordinate.latitude,
newLocation.coordinate.longitude);
}
}
- (void)locationManager:(CLLocationManager *)manager
didFailWithError:(NSError *)error {
NSLog(@"%@", error);
}
58. Step 8: Show Nearby Places
1.Show the Nearby Place Selector
MyAppViewController.m 파일에 추가
@property (strong, nonatomic) FBPlacePickerViewController *placePickerController;
@synthesize placePickerController = _placePickerController;
tableView:didDeselectRowAtIndexPath 함수에 다음을 추가
case 1:
if (!self.placePickerController) {
self.placePickerController = [[FBPlacePickerViewController alloc]
initWithNibName:nil bundle:nil];
self.placePickerController.title = @"Select a restaurant";
}
self.placePickerController.locationCoordinate =
self.locationManager.location.coordinate;
self.placePickerController.radiusInMeters = 1000;
self.placePickerController.resultsLimit = 50;
self.placePickerController.searchText = @"restaurant";
[self.placePickerController loadData];
[self.navigationController pushViewController:self.placePickerController
animated:true];
break;
60. Step 8: Show Nearby Places
1.Display the Selected Place
tableView:didSelectRowAtIndexPath 메소드 수정
self.placePickerController.delegate = self;
MyAppviewController.m 에 다음을 추가
@property (strong, nonatomic) NSObject<FBGraphPlace>* selectedPlace;
@synthesize selectedPlace = _selectedPlace;
updateSelections 함수에 다음을 추가
[self updateCellIndex:1 withSubtitle:(self.selectedPlace ?
self.selectedPlace.name :
@"Select One")];
62. Step 9 : Publish to Feed
1.Facebook Timeline 의 구현을 Graph API를 사용하지 않고 대안으로
구현할수있는 Feed Dialog 방법을 설명한다.
2. FBRequestConnection 클래스를 이용한다.
3. startWithGraphPath:parameters:HTTPMethod:completionHandler:
함수를 사용한다.
4. USER_ID/feed 파라미터를 통하여 전달한다.
1: Set Up the Share View Trigger
63. Step 9 : Publish to Feed
1: Set Up the Share View Trigger
MyAppViewController.m 파일의 ViewDidLoad함수의 내용과 sessionStateChanged 함수의 내용을 변경
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
_loginButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[_loginButton setTitle:@"Publish" forState:UIControlStateNormal];
_loginButton.frame = CGRectMake(80, 350, 150, 50);
[_loginButton addTarget:self action:@selector(gofacebookpublish) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:_loginButton];
- (void)sessionStateChanged:(NSNotification*)notification {
if (FBSession.activeSession.isOpen) {
self.loginButton.hidden = NO;
} else {
self.loginButton.hidden = YES;
}
[self populateUserDetails];
}
65. Step 9 : Publish to Feed
3: Set Up the Share View
3-1. FBFeedViewcontroller 새로 생성
66. Step 9 : Publish to Feed
3: Set Up the Share View
3-2. FBFeedViewController.xib 파일에서 .m 파일로 드러그앤 코딩으로 Tool bar 구현한다.
67. Step 9 : Publish to Feed
3: Set Up the Share View
3-3. FBFeedViewController.xib 파일에서 .m 파일로 드러그앤 코딩으로 나머지 구현한다.
Message:
• Add a Text View object to the view below the toolbar. Stretch it out to take up most of the view's width.
• In the Connections Inspector, connect the delegate outlet to the File's Owner.
• Add an outlet to your view controller's implementation file so it's private. Name the outlet ''postMessageTextView''.
Image:
• Add an Image View object to the view below the ''Message'' text view, to the left of the main view.
• In the Attributes Inspector, set the View > Mode to Aspect Fit.
• In the Size Inspector, set the width to 80 and the height to 80.
• Add an outlet to your view controller's implementation file so it's private. Name the outlet ''postImageView''.
Name:
• In the Attributes Inspector, set the text color to a dark blue and the font to System Bold.
• Add an outlet to your view controller's implementation file so it's private. Name the outlet ''postNameLabel''.
Caption:
• Add a Label object to the view. Place it below the ''Name'' label.
• In the Attributes Inspector, set the text color to a dark gray and the make the font size smaller than the ''Name'' label. Set the Lines attribute to 0.
• Add an outlet to your view controller's implementation file so it's private. Name the outlet ''postCaptionLabel''.
Description:
• Add a Label object to the view. Place it below the ''Caption'' label.
• In the Attributes Inspector, set the font size to be smaller than the ''Name'' label font size. Set the Lines attribute to 0.
• Add an outlet to your view controller's implementation file so it's private. Name the outlet ''postDescriptionLabel''.
68. Step 9 : Publish to Feed
3: Set Up the Share View
3-3. FBFeedViewController.xib 파일에서 .m 파일로 드러그앤 코딩으로 나머지 구현한다.
69. Step 9 : Publish to Feed
3: Set Up the Share View
3-3. FBFeedViewController.m 코딩
text view에 미리 쓰여질 문자열 설정
text view에 미리 쓰여질 문자열 함수 구현
70. Step 9 : Publish to Feed
3: Set Up the Share View
3-3. FBFeedViewController.m 코딩 UITextViewDelegate 메스드 구현
71. Step 9 : Publish to Feed
3: Set Up the Share View
3-4. Configure the Display Data
initWithNibName:bundle 메소드에 추가
72. Step 9 : Publish to Feed
3: Set Up the Share View
3-4. Configure the Display Data
ViewDidLoad 메소드에 추가
73. Step 9 : Publish to Feed
3: Set Up the Share View
3-5. Load the Story Image
ViewDidLoad
ViewDidUnLoad
74. Step 9 : Publish to Feed
3: Set Up the Share View
3-5. Load the Story Image
NSURLConnection delegate methods
- (void)connection:(NSURLConnection*)connection
didReceiveData:(NSData*)data{
[self.imageData appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection{
// Load the image
self.postImageView.image = [UIImage imageWithData:
[NSData dataWithData:self.imageData]];
self.imageConnection = nil;
self.imageData = nil;
}
- (void)connection:(NSURLConnection *)connection
didFailWithError:(NSError *)error{
self.imageConnection = nil;
self.imageData = nil;
}
75. Step 9 : Publish to Feed
3: Set Up the Share View
3-6. Configure the Cancel Action
- (IBAction)cancelButtonAction:(id)sender {
[[self presentingViewController]
dismissModalViewControllerAnimated:YES];
}
3-7. Present the Share View
FBFeedViewController.m 파일에 Import & 클릭함수 구현
-(void) gofacebookpublish
{
FBFeedViewController *viewController = [[FBFeedViewController alloc]
initWithNibName:@"FBFeedViewController"
bundle:nil];
[self presentViewController:viewController animated:YES completion:nil];
}